/*
 *
 *    Copyright (c) 2021 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

// Prevent multiple inclusion
#pragma once

#include <app/common/gen/af-structs.h>
#include <app/util/af-types.h>
#include <app/util/basic-types.h>

#include <app/Command.h>
#include <app/CommandHandler.h>
#include <app/CommandSender.h>
#include <lib/support/Span.h>

/** @brief Cluster Init
 *
 * This function is called when a specific cluster is initialized. It gives the
 * application an opportunity to take care of cluster initialization procedures.
 * It is called exactly once for each endpoint where cluster is present.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 */
void emberAfClusterInitCallback(chip::EndpointId endpoint, chip::ClusterId clusterId);

// Cluster Init Functions

/** @brief Power Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Device Temperature Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDeviceTemperatureConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Identify Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIdentifyClusterInitCallback(chip::EndpointId endpoint);

/** @brief Groups Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Scenes Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfScenesClusterInitCallback(chip::EndpointId endpoint);

/** @brief On/Off Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffClusterInitCallback(chip::EndpointId endpoint);

/** @brief On/off Switch Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffSwitchConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Level Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLevelControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Alarms Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAlarmsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Time Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTimeClusterInitCallback(chip::EndpointId endpoint);

/** @brief Binary Input (Basic) Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBinaryInputBasicClusterInitCallback(chip::EndpointId endpoint);

/** @brief Power Profile Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerProfileClusterInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Descriptor Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDescriptorClusterInitCallback(chip::EndpointId endpoint);

/** @brief Poll Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPollControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Basic Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBasicClusterInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Provider Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateProviderClusterInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Requestor Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateRequestorClusterInitCallback(chip::EndpointId endpoint);

/** @brief General Commissioning Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralCommissioningClusterInitCallback(chip::EndpointId endpoint);

/** @brief Network Commissioning Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNetworkCommissioningClusterInitCallback(chip::EndpointId endpoint);

/** @brief Diagnostic Logs Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDiagnosticLogsClusterInitCallback(chip::EndpointId endpoint);

/** @brief General Diagnostics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralDiagnosticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Software Diagnostics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSoftwareDiagnosticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Thread Network Diagnostics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThreadNetworkDiagnosticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief WiFi Network Diagnostics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWiFiNetworkDiagnosticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Ethernet Network Diagnostics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthernetNetworkDiagnosticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Bridged Device Basic Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBridgedDeviceBasicClusterInitCallback(chip::EndpointId endpoint);

/** @brief Switch Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSwitchClusterInitCallback(chip::EndpointId endpoint);

/** @brief AdministratorCommissioning Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAdministratorCommissioningClusterInitCallback(chip::EndpointId endpoint);

/** @brief Operational Credentials Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOperationalCredentialsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Fixed Label Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFixedLabelClusterInitCallback(chip::EndpointId endpoint);

/** @brief Shade Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfShadeConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Door Lock Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDoorLockClusterInitCallback(chip::EndpointId endpoint);

/** @brief Window Covering Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWindowCoveringClusterInitCallback(chip::EndpointId endpoint);

/** @brief Barrier Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBarrierControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Pump Configuration and Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPumpConfigurationAndControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatClusterInitCallback(chip::EndpointId endpoint);

/** @brief Fan Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFanControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Dehumidification Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDehumidificationControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat User Interface Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatUserInterfaceConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Color Control Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfColorControlClusterInitCallback(chip::EndpointId endpoint);

/** @brief Ballast Configuration Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBallastConfigurationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Level Sensing Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceLevelSensingClusterInitCallback(chip::EndpointId endpoint);

/** @brief Temperature Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTemperatureMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Pressure Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPressureMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Flow Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFlowMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Relative Humidity Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfRelativeHumidityMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Occupancy Sensing Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOccupancySensingClusterInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Monoxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Dioxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Oxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Nitric Oxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitricOxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Oxygen Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOxygenConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Ozone Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOzoneConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Bromate Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromateConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Chloramines Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloraminesConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Chlorine Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorineConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Fluoride Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFluorideConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Haloacetic Acids Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Turbidity Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTurbidityConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Copper Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCopperConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Lead Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLeadConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Manganese Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfManganeseConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Sulfate Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfateConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Bromodichloromethane Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Bromoform Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromoformConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Chloroform Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloroformConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Sodium Concentration Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSodiumConcentrationMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief IAS Zone Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasZoneClusterInitCallback(chip::EndpointId endpoint);

/** @brief IAS ACE Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasAceClusterInitCallback(chip::EndpointId endpoint);

/** @brief IAS WD Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasWdClusterInitCallback(chip::EndpointId endpoint);

/** @brief Wake on LAN Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWakeOnLanClusterInitCallback(chip::EndpointId endpoint);

/** @brief TV Channel Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTvChannelClusterInitCallback(chip::EndpointId endpoint);

/** @brief Target Navigator Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTargetNavigatorClusterInitCallback(chip::EndpointId endpoint);

/** @brief Media Playback Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaPlaybackClusterInitCallback(chip::EndpointId endpoint);

/** @brief Media Input Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaInputClusterInitCallback(chip::EndpointId endpoint);

/** @brief Low Power Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLowPowerClusterInitCallback(chip::EndpointId endpoint);

/** @brief Keypad Input Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfKeypadInputClusterInitCallback(chip::EndpointId endpoint);

/** @brief Content Launcher Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfContentLauncherClusterInitCallback(chip::EndpointId endpoint);

/** @brief Audio Output Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAudioOutputClusterInitCallback(chip::EndpointId endpoint);

/** @brief Application Launcher Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationLauncherClusterInitCallback(chip::EndpointId endpoint);

/** @brief Application Basic Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationBasicClusterInitCallback(chip::EndpointId endpoint);

/** @brief Account Login Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAccountLoginClusterInitCallback(chip::EndpointId endpoint);

/** @brief Test Cluster Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTestClusterClusterInitCallback(chip::EndpointId endpoint);

/** @brief Messaging Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMessagingClusterInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Identification Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceIdentificationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Meter Identification Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMeterIdentificationClusterInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Events and Alert Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceEventsAndAlertClusterInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Statistics Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceStatisticsClusterInitCallback(chip::EndpointId endpoint);

/** @brief Electrical Measurement Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfElectricalMeasurementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Binding Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBindingClusterInitCallback(chip::EndpointId endpoint);

/** @brief Group Key Management Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupKeyManagementClusterInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificClusterClusterInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster 2 Cluster Init
 *
 * Cluster Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificCluster2ClusterInitCallback(chip::EndpointId endpoint);

// Cluster Server/Client Init Functions

//
// Power Configuration Cluster
//

/** @brief Power Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Power Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Power Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPowerConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Power Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPowerConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Power Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPowerConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Power Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPowerConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Power Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPowerConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Power Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPowerConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Power Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPowerConfigurationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Power Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPowerConfigurationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Power Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPowerConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Power Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPowerConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Device Temperature Configuration Cluster
//

/** @brief Device Temperature Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDeviceTemperatureConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Device Temperature Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDeviceTemperatureConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Device Temperature Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDeviceTemperatureConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Device Temperature Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDeviceTemperatureConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Device Temperature Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDeviceTemperatureConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Device Temperature Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDeviceTemperatureConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Device Temperature Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDeviceTemperatureConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Device Temperature Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDeviceTemperatureConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Device Temperature Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDeviceTemperatureConfigurationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Device Temperature Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDeviceTemperatureConfigurationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Device Temperature Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDeviceTemperatureConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Device Temperature Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDeviceTemperatureConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Identify Cluster
//

/** @brief Identify Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIdentifyClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Identify Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIdentifyClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Identify Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIdentifyClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Identify Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIdentifyClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Identify Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIdentifyClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Identify Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIdentifyClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Identify Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIdentifyClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Identify Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIdentifyClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Identify Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIdentifyClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Identify Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIdentifyClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Identify Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIdentifyClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Identify Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIdentifyClusterClientTickCallback(chip::EndpointId endpoint);

//
// Groups Cluster
//

/** @brief Groups Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Groups Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Groups Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGroupsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Groups Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGroupsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Groups Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGroupsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Groups Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGroupsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Groups Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGroupsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Groups Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGroupsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Groups Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGroupsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Groups Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGroupsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Groups Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGroupsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Groups Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGroupsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Scenes Cluster
//

/** @brief Scenes Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfScenesClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Scenes Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfScenesClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Scenes Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfScenesClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Scenes Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfScenesClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Scenes Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfScenesClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Scenes Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfScenesClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Scenes Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfScenesClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Scenes Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfScenesClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Scenes Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfScenesClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Scenes Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfScenesClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Scenes Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfScenesClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Scenes Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfScenesClusterClientTickCallback(chip::EndpointId endpoint);

//
// On/Off Cluster
//

/** @brief On/Off Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief On/Off Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief On/Off Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOnOffClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief On/Off Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOnOffClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief On/Off Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOnOffClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief On/Off Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOnOffClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief On/Off Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOnOffClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief On/Off Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOnOffClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief On/Off Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOnOffClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief On/Off Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOnOffClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief On/Off Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOnOffClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief On/Off Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOnOffClusterClientTickCallback(chip::EndpointId endpoint);

//
// On/off Switch Configuration Cluster
//

/** @brief On/off Switch Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffSwitchConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief On/off Switch Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOnOffSwitchConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief On/off Switch Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOnOffSwitchConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief On/off Switch Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOnOffSwitchConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief On/off Switch Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOnOffSwitchConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief On/off Switch Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOnOffSwitchConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief On/off Switch Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOnOffSwitchConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief On/off Switch Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOnOffSwitchConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief On/off Switch Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOnOffSwitchConfigurationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief On/off Switch Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOnOffSwitchConfigurationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief On/off Switch Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOnOffSwitchConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief On/off Switch Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOnOffSwitchConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Level Control Cluster
//

/** @brief Level Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLevelControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Level Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLevelControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Level Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLevelControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Level Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLevelControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Level Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLevelControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Level Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLevelControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Level Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLevelControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Level Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLevelControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Level Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLevelControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Level Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLevelControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Level Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLevelControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Level Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLevelControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Alarms Cluster
//

/** @brief Alarms Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAlarmsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Alarms Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAlarmsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Alarms Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAlarmsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Alarms Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAlarmsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Alarms Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAlarmsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Alarms Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAlarmsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Alarms Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAlarmsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Alarms Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAlarmsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Alarms Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAlarmsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Alarms Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAlarmsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Alarms Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAlarmsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Alarms Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAlarmsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Time Cluster
//

/** @brief Time Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTimeClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Time Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTimeClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Time Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTimeClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Time Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTimeClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Time Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTimeClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          uint16_t manufacturerCode);

/** @brief Time Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTimeClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          uint16_t manufacturerCode);

/** @brief Time Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTimeClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                 uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Time Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTimeClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                 uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Time Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTimeClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                  uint8_t * value);

/** @brief Time Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTimeClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                  uint8_t * value);

/** @brief Time Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTimeClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Time Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTimeClusterClientTickCallback(chip::EndpointId endpoint);

//
// Binary Input (Basic) Cluster
//

/** @brief Binary Input (Basic) Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBinaryInputBasicClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Binary Input (Basic) Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBinaryInputBasicClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Binary Input (Basic) Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBinaryInputBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Binary Input (Basic) Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBinaryInputBasicClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Binary Input (Basic) Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBinaryInputBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Binary Input (Basic) Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBinaryInputBasicClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Binary Input (Basic) Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBinaryInputBasicClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Binary Input (Basic) Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBinaryInputBasicClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Binary Input (Basic) Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBinaryInputBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Binary Input (Basic) Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBinaryInputBasicClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Binary Input (Basic) Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBinaryInputBasicClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Binary Input (Basic) Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBinaryInputBasicClusterClientTickCallback(chip::EndpointId endpoint);

//
// Power Profile Cluster
//

/** @brief Power Profile Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerProfileClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Power Profile Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPowerProfileClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Power Profile Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPowerProfileClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Power Profile Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPowerProfileClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Power Profile Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPowerProfileClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Power Profile Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPowerProfileClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Power Profile Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPowerProfileClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Power Profile Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPowerProfileClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Power Profile Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPowerProfileClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Power Profile Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPowerProfileClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Power Profile Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPowerProfileClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Power Profile Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPowerProfileClusterClientTickCallback(chip::EndpointId endpoint);

//
// Appliance Control Cluster
//

/** @brief Appliance Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Appliance Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Appliance Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Appliance Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Appliance Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Appliance Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Appliance Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Appliance Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Descriptor Cluster
//

/** @brief Descriptor Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDescriptorClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Descriptor Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDescriptorClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Descriptor Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDescriptorClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Descriptor Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDescriptorClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Descriptor Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDescriptorClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Descriptor Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDescriptorClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Descriptor Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDescriptorClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Descriptor Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDescriptorClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Descriptor Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDescriptorClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Descriptor Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDescriptorClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Descriptor Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDescriptorClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Descriptor Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDescriptorClusterClientTickCallback(chip::EndpointId endpoint);

//
// Poll Control Cluster
//

/** @brief Poll Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPollControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Poll Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPollControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Poll Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPollControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Poll Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPollControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Poll Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPollControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Poll Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPollControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Poll Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPollControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Poll Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPollControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Poll Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPollControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Poll Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPollControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Poll Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPollControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Poll Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPollControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Basic Cluster
//

/** @brief Basic Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBasicClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Basic Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBasicClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Basic Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Basic Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBasicClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Basic Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief Basic Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBasicClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief Basic Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBasicClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Basic Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBasicClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Basic Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief Basic Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBasicClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief Basic Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBasicClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Basic Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBasicClusterClientTickCallback(chip::EndpointId endpoint);

//
// OTA Software Update Provider Cluster
//

/** @brief OTA Software Update Provider Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateProviderClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Provider Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateProviderClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Provider Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOtaSoftwareUpdateProviderClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                           chip::AttributeId attributeId);

/** @brief OTA Software Update Provider Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOtaSoftwareUpdateProviderClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                           chip::AttributeId attributeId);

/** @brief OTA Software Update Provider Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOtaSoftwareUpdateProviderClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               uint16_t manufacturerCode);

/** @brief OTA Software Update Provider Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOtaSoftwareUpdateProviderClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               uint16_t manufacturerCode);

/** @brief OTA Software Update Provider Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOtaSoftwareUpdateProviderClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                      EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                      EmberStatus status);

/** @brief OTA Software Update Provider Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOtaSoftwareUpdateProviderClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                      EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                      EmberStatus status);

/** @brief OTA Software Update Provider Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOtaSoftwareUpdateProviderClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId,
                                                                                       EmberAfAttributeType attributeType,
                                                                                       uint16_t size, uint8_t * value);

/** @brief OTA Software Update Provider Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOtaSoftwareUpdateProviderClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId,
                                                                                       EmberAfAttributeType attributeType,
                                                                                       uint16_t size, uint8_t * value);

/** @brief OTA Software Update Provider Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOtaSoftwareUpdateProviderClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Provider Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOtaSoftwareUpdateProviderClusterClientTickCallback(chip::EndpointId endpoint);

//
// OTA Software Update Requestor Cluster
//

/** @brief OTA Software Update Requestor Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateRequestorClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Requestor Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOtaSoftwareUpdateRequestorClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Requestor Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOtaSoftwareUpdateRequestorClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief OTA Software Update Requestor Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOtaSoftwareUpdateRequestorClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief OTA Software Update Requestor Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOtaSoftwareUpdateRequestorClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief OTA Software Update Requestor Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOtaSoftwareUpdateRequestorClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief OTA Software Update Requestor Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOtaSoftwareUpdateRequestorClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief OTA Software Update Requestor Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOtaSoftwareUpdateRequestorClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief OTA Software Update Requestor Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOtaSoftwareUpdateRequestorClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief OTA Software Update Requestor Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOtaSoftwareUpdateRequestorClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief OTA Software Update Requestor Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOtaSoftwareUpdateRequestorClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief OTA Software Update Requestor Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOtaSoftwareUpdateRequestorClusterClientTickCallback(chip::EndpointId endpoint);

//
// General Commissioning Cluster
//

/** @brief General Commissioning Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralCommissioningClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief General Commissioning Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralCommissioningClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief General Commissioning Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGeneralCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief General Commissioning Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGeneralCommissioningClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief General Commissioning Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGeneralCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief General Commissioning Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGeneralCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief General Commissioning Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGeneralCommissioningClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief General Commissioning Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGeneralCommissioningClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief General Commissioning Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGeneralCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief General Commissioning Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGeneralCommissioningClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief General Commissioning Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGeneralCommissioningClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief General Commissioning Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGeneralCommissioningClusterClientTickCallback(chip::EndpointId endpoint);

//
// Network Commissioning Cluster
//

/** @brief Network Commissioning Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNetworkCommissioningClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Network Commissioning Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNetworkCommissioningClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Network Commissioning Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNetworkCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Network Commissioning Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNetworkCommissioningClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Network Commissioning Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNetworkCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief Network Commissioning Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNetworkCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief Network Commissioning Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNetworkCommissioningClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief Network Commissioning Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNetworkCommissioningClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief Network Commissioning Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNetworkCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief Network Commissioning Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNetworkCommissioningClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief Network Commissioning Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNetworkCommissioningClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Network Commissioning Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNetworkCommissioningClusterClientTickCallback(chip::EndpointId endpoint);

//
// Diagnostic Logs Cluster
//

/** @brief Diagnostic Logs Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDiagnosticLogsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Diagnostic Logs Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDiagnosticLogsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Diagnostic Logs Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDiagnosticLogsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Diagnostic Logs Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDiagnosticLogsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Diagnostic Logs Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDiagnosticLogsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Diagnostic Logs Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDiagnosticLogsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Diagnostic Logs Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDiagnosticLogsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Diagnostic Logs Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDiagnosticLogsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Diagnostic Logs Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDiagnosticLogsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Diagnostic Logs Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDiagnosticLogsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Diagnostic Logs Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDiagnosticLogsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Diagnostic Logs Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDiagnosticLogsClusterClientTickCallback(chip::EndpointId endpoint);

//
// General Diagnostics Cluster
//

/** @brief General Diagnostics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralDiagnosticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief General Diagnostics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGeneralDiagnosticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief General Diagnostics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGeneralDiagnosticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief General Diagnostics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGeneralDiagnosticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief General Diagnostics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGeneralDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief General Diagnostics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGeneralDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief General Diagnostics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGeneralDiagnosticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief General Diagnostics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGeneralDiagnosticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief General Diagnostics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGeneralDiagnosticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief General Diagnostics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGeneralDiagnosticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief General Diagnostics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGeneralDiagnosticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief General Diagnostics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGeneralDiagnosticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Software Diagnostics Cluster
//

/** @brief Software Diagnostics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSoftwareDiagnosticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Software Diagnostics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSoftwareDiagnosticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Software Diagnostics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSoftwareDiagnosticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Software Diagnostics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSoftwareDiagnosticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Software Diagnostics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSoftwareDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Software Diagnostics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSoftwareDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Software Diagnostics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSoftwareDiagnosticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Software Diagnostics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSoftwareDiagnosticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Software Diagnostics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSoftwareDiagnosticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Software Diagnostics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSoftwareDiagnosticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Software Diagnostics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSoftwareDiagnosticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Software Diagnostics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSoftwareDiagnosticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Thread Network Diagnostics Cluster
//

/** @brief Thread Network Diagnostics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThreadNetworkDiagnosticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Thread Network Diagnostics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThreadNetworkDiagnosticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Thread Network Diagnostics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThreadNetworkDiagnosticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Thread Network Diagnostics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThreadNetworkDiagnosticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Thread Network Diagnostics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThreadNetworkDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief Thread Network Diagnostics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThreadNetworkDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief Thread Network Diagnostics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThreadNetworkDiagnosticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief Thread Network Diagnostics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThreadNetworkDiagnosticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief Thread Network Diagnostics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThreadNetworkDiagnosticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief Thread Network Diagnostics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThreadNetworkDiagnosticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief Thread Network Diagnostics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThreadNetworkDiagnosticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Thread Network Diagnostics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThreadNetworkDiagnosticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// WiFi Network Diagnostics Cluster
//

/** @brief WiFi Network Diagnostics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWiFiNetworkDiagnosticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief WiFi Network Diagnostics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWiFiNetworkDiagnosticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief WiFi Network Diagnostics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWiFiNetworkDiagnosticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief WiFi Network Diagnostics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWiFiNetworkDiagnosticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief WiFi Network Diagnostics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWiFiNetworkDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief WiFi Network Diagnostics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWiFiNetworkDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief WiFi Network Diagnostics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWiFiNetworkDiagnosticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief WiFi Network Diagnostics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWiFiNetworkDiagnosticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief WiFi Network Diagnostics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWiFiNetworkDiagnosticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief WiFi Network Diagnostics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWiFiNetworkDiagnosticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief WiFi Network Diagnostics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWiFiNetworkDiagnosticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief WiFi Network Diagnostics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWiFiNetworkDiagnosticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Ethernet Network Diagnostics Cluster
//

/** @brief Ethernet Network Diagnostics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthernetNetworkDiagnosticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Ethernet Network Diagnostics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthernetNetworkDiagnosticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Ethernet Network Diagnostics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthernetNetworkDiagnosticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief Ethernet Network Diagnostics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthernetNetworkDiagnosticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief Ethernet Network Diagnostics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthernetNetworkDiagnosticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief Ethernet Network Diagnostics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthernetNetworkDiagnosticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief Ethernet Network Diagnostics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthernetNetworkDiagnosticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief Ethernet Network Diagnostics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthernetNetworkDiagnosticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief Ethernet Network Diagnostics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthernetNetworkDiagnosticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief Ethernet Network Diagnostics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthernetNetworkDiagnosticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief Ethernet Network Diagnostics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthernetNetworkDiagnosticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Ethernet Network Diagnostics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthernetNetworkDiagnosticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Bridged Device Basic Cluster
//

/** @brief Bridged Device Basic Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBridgedDeviceBasicClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Bridged Device Basic Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBridgedDeviceBasicClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Bridged Device Basic Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBridgedDeviceBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Bridged Device Basic Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBridgedDeviceBasicClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Bridged Device Basic Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBridgedDeviceBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Bridged Device Basic Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBridgedDeviceBasicClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Bridged Device Basic Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBridgedDeviceBasicClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Bridged Device Basic Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBridgedDeviceBasicClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Bridged Device Basic Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBridgedDeviceBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Bridged Device Basic Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBridgedDeviceBasicClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Bridged Device Basic Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBridgedDeviceBasicClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Bridged Device Basic Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBridgedDeviceBasicClusterClientTickCallback(chip::EndpointId endpoint);

//
// Switch Cluster
//

/** @brief Switch Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSwitchClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Switch Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSwitchClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Switch Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSwitchClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Switch Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSwitchClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Switch Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSwitchClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Switch Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSwitchClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief Switch Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSwitchClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Switch Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSwitchClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Switch Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSwitchClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Switch Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSwitchClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief Switch Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSwitchClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Switch Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSwitchClusterClientTickCallback(chip::EndpointId endpoint);

//
// AdministratorCommissioning Cluster
//

/** @brief AdministratorCommissioning Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAdministratorCommissioningClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief AdministratorCommissioning Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAdministratorCommissioningClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief AdministratorCommissioning Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAdministratorCommissioningClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief AdministratorCommissioning Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAdministratorCommissioningClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId);

/** @brief AdministratorCommissioning Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAdministratorCommissioningClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief AdministratorCommissioning Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAdministratorCommissioningClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                uint16_t manufacturerCode);

/** @brief AdministratorCommissioning Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAdministratorCommissioningClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief AdministratorCommissioning Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAdministratorCommissioningClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                       EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                       EmberStatus status);

/** @brief AdministratorCommissioning Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAdministratorCommissioningClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief AdministratorCommissioning Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAdministratorCommissioningClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        EmberAfAttributeType attributeType,
                                                                                        uint16_t size, uint8_t * value);

/** @brief AdministratorCommissioning Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAdministratorCommissioningClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief AdministratorCommissioning Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAdministratorCommissioningClusterClientTickCallback(chip::EndpointId endpoint);

//
// Operational Credentials Cluster
//

/** @brief Operational Credentials Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOperationalCredentialsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Operational Credentials Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOperationalCredentialsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Operational Credentials Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOperationalCredentialsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Operational Credentials Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOperationalCredentialsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Operational Credentials Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOperationalCredentialsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Operational Credentials Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOperationalCredentialsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Operational Credentials Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOperationalCredentialsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Operational Credentials Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOperationalCredentialsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Operational Credentials Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOperationalCredentialsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Operational Credentials Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOperationalCredentialsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Operational Credentials Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOperationalCredentialsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Operational Credentials Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOperationalCredentialsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Fixed Label Cluster
//

/** @brief Fixed Label Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFixedLabelClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Fixed Label Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFixedLabelClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Fixed Label Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFixedLabelClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Fixed Label Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFixedLabelClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Fixed Label Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFixedLabelClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Fixed Label Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFixedLabelClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Fixed Label Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFixedLabelClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Fixed Label Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFixedLabelClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Fixed Label Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFixedLabelClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Fixed Label Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFixedLabelClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Fixed Label Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFixedLabelClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Fixed Label Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFixedLabelClusterClientTickCallback(chip::EndpointId endpoint);

//
// Shade Configuration Cluster
//

/** @brief Shade Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfShadeConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Shade Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfShadeConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Shade Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfShadeConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Shade Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfShadeConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Shade Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfShadeConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Shade Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfShadeConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Shade Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfShadeConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Shade Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfShadeConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Shade Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfShadeConfigurationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Shade Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfShadeConfigurationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Shade Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfShadeConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Shade Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfShadeConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Door Lock Cluster
//

/** @brief Door Lock Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDoorLockClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Door Lock Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDoorLockClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Door Lock Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDoorLockClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Door Lock Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDoorLockClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Door Lock Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDoorLockClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Door Lock Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDoorLockClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Door Lock Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDoorLockClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Door Lock Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDoorLockClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Door Lock Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDoorLockClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Door Lock Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDoorLockClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Door Lock Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDoorLockClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Door Lock Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDoorLockClusterClientTickCallback(chip::EndpointId endpoint);

//
// Window Covering Cluster
//

/** @brief Window Covering Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWindowCoveringClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Window Covering Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWindowCoveringClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Window Covering Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWindowCoveringClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Window Covering Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWindowCoveringClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Window Covering Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWindowCoveringClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Window Covering Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWindowCoveringClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Window Covering Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWindowCoveringClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Window Covering Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWindowCoveringClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Window Covering Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWindowCoveringClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Window Covering Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWindowCoveringClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Window Covering Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWindowCoveringClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Window Covering Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWindowCoveringClusterClientTickCallback(chip::EndpointId endpoint);

//
// Barrier Control Cluster
//

/** @brief Barrier Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBarrierControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Barrier Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBarrierControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Barrier Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBarrierControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Barrier Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBarrierControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Barrier Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBarrierControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Barrier Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBarrierControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    uint16_t manufacturerCode);

/** @brief Barrier Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBarrierControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Barrier Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBarrierControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                           EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                           EmberStatus status);

/** @brief Barrier Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBarrierControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Barrier Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBarrierControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            EmberAfAttributeType attributeType, uint16_t size,
                                                                            uint8_t * value);

/** @brief Barrier Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBarrierControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Barrier Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBarrierControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Pump Configuration and Control Cluster
//

/** @brief Pump Configuration and Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPumpConfigurationAndControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Pump Configuration and Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPumpConfigurationAndControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Pump Configuration and Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPumpConfigurationAndControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId);

/** @brief Pump Configuration and Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPumpConfigurationAndControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId);

/** @brief Pump Configuration and Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPumpConfigurationAndControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 uint16_t manufacturerCode);

/** @brief Pump Configuration and Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPumpConfigurationAndControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 uint16_t manufacturerCode);

/** @brief Pump Configuration and Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPumpConfigurationAndControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                        EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                        uint8_t * message, EmberStatus status);

/** @brief Pump Configuration and Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPumpConfigurationAndControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                        EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                        uint8_t * message, EmberStatus status);

/** @brief Pump Configuration and Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPumpConfigurationAndControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         EmberAfAttributeType attributeType,
                                                                                         uint16_t size, uint8_t * value);

/** @brief Pump Configuration and Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPumpConfigurationAndControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         EmberAfAttributeType attributeType,
                                                                                         uint16_t size, uint8_t * value);

/** @brief Pump Configuration and Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPumpConfigurationAndControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Pump Configuration and Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPumpConfigurationAndControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Thermostat Cluster
//

/** @brief Thermostat Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThermostatClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Thermostat Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThermostatClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Thermostat Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThermostatClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Thermostat Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThermostatClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Thermostat Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThermostatClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Thermostat Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThermostatClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Thermostat Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThermostatClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Thermostat Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThermostatClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Thermostat Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThermostatClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Thermostat Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThermostatClusterClientTickCallback(chip::EndpointId endpoint);

//
// Fan Control Cluster
//

/** @brief Fan Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFanControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Fan Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFanControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Fan Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFanControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Fan Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFanControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Fan Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFanControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Fan Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFanControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Fan Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFanControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Fan Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFanControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Fan Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFanControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Fan Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFanControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Fan Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFanControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Fan Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFanControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Dehumidification Control Cluster
//

/** @brief Dehumidification Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDehumidificationControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Dehumidification Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDehumidificationControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Dehumidification Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDehumidificationControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Dehumidification Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDehumidificationControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Dehumidification Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDehumidificationControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Dehumidification Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDehumidificationControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Dehumidification Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDehumidificationControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Dehumidification Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDehumidificationControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Dehumidification Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDehumidificationControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Dehumidification Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDehumidificationControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Dehumidification Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDehumidificationControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Dehumidification Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDehumidificationControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Thermostat User Interface Configuration Cluster
//

/** @brief Thermostat User Interface Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatUserInterfaceConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat User Interface Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfThermostatUserInterfaceConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Thermostat User Interface Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThermostatUserInterfaceConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId);

/** @brief Thermostat User Interface Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfThermostatUserInterfaceConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId);

/** @brief Thermostat User Interface Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThermostatUserInterfaceConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Thermostat User Interface Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfThermostatUserInterfaceConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Thermostat User Interface Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThermostatUserInterfaceConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                 EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                 uint8_t * message, EmberStatus status);

/** @brief Thermostat User Interface Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfThermostatUserInterfaceConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                 EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                 uint8_t * message, EmberStatus status);

/** @brief Thermostat User Interface Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThermostatUserInterfaceConfigurationClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Thermostat User Interface Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfThermostatUserInterfaceConfigurationClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Thermostat User Interface Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThermostatUserInterfaceConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Thermostat User Interface Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfThermostatUserInterfaceConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Color Control Cluster
//

/** @brief Color Control Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfColorControlClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Color Control Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfColorControlClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Color Control Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfColorControlClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Color Control Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfColorControlClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Color Control Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfColorControlClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Color Control Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfColorControlClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Color Control Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfColorControlClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Color Control Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfColorControlClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Color Control Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfColorControlClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Color Control Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfColorControlClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Color Control Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfColorControlClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Color Control Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfColorControlClusterClientTickCallback(chip::EndpointId endpoint);

//
// Ballast Configuration Cluster
//

/** @brief Ballast Configuration Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBallastConfigurationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Ballast Configuration Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBallastConfigurationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Ballast Configuration Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBallastConfigurationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Ballast Configuration Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBallastConfigurationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Ballast Configuration Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBallastConfigurationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief Ballast Configuration Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBallastConfigurationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          uint16_t manufacturerCode);

/** @brief Ballast Configuration Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBallastConfigurationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief Ballast Configuration Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBallastConfigurationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                 EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                 EmberStatus status);

/** @brief Ballast Configuration Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBallastConfigurationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief Ballast Configuration Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBallastConfigurationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  EmberAfAttributeType attributeType, uint16_t size,
                                                                                  uint8_t * value);

/** @brief Ballast Configuration Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBallastConfigurationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Ballast Configuration Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBallastConfigurationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Illuminance Measurement Cluster
//

/** @brief Illuminance Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIlluminanceMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Illuminance Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIlluminanceMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Illuminance Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIlluminanceMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Illuminance Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIlluminanceMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Illuminance Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIlluminanceMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Illuminance Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIlluminanceMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Illuminance Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIlluminanceMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Illuminance Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIlluminanceMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Illuminance Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIlluminanceMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Illuminance Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIlluminanceMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Illuminance Level Sensing Cluster
//

/** @brief Illuminance Level Sensing Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceLevelSensingClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Level Sensing Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIlluminanceLevelSensingClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Illuminance Level Sensing Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIlluminanceLevelSensingClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Illuminance Level Sensing Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIlluminanceLevelSensingClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Illuminance Level Sensing Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIlluminanceLevelSensingClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Illuminance Level Sensing Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIlluminanceLevelSensingClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Illuminance Level Sensing Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIlluminanceLevelSensingClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Illuminance Level Sensing Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIlluminanceLevelSensingClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Illuminance Level Sensing Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIlluminanceLevelSensingClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Illuminance Level Sensing Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIlluminanceLevelSensingClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Illuminance Level Sensing Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIlluminanceLevelSensingClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Illuminance Level Sensing Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIlluminanceLevelSensingClusterClientTickCallback(chip::EndpointId endpoint);

//
// Temperature Measurement Cluster
//

/** @brief Temperature Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTemperatureMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Temperature Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTemperatureMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Temperature Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTemperatureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Temperature Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTemperatureMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Temperature Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTemperatureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Temperature Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTemperatureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            uint16_t manufacturerCode);

/** @brief Temperature Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTemperatureMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Temperature Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTemperatureMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                   EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                   EmberStatus status);

/** @brief Temperature Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTemperatureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Temperature Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTemperatureMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId,
                                                                                    EmberAfAttributeType attributeType,
                                                                                    uint16_t size, uint8_t * value);

/** @brief Temperature Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTemperatureMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Temperature Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTemperatureMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Pressure Measurement Cluster
//

/** @brief Pressure Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPressureMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Pressure Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfPressureMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Pressure Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPressureMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Pressure Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfPressureMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Pressure Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPressureMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Pressure Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfPressureMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Pressure Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPressureMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Pressure Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfPressureMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Pressure Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPressureMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Pressure Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfPressureMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Pressure Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPressureMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Pressure Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfPressureMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Flow Measurement Cluster
//

/** @brief Flow Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFlowMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Flow Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFlowMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Flow Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFlowMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Flow Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFlowMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Flow Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFlowMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Flow Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFlowMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Flow Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFlowMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Flow Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFlowMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Flow Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFlowMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Flow Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFlowMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Flow Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFlowMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Flow Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFlowMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Relative Humidity Measurement Cluster
//

/** @brief Relative Humidity Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfRelativeHumidityMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Relative Humidity Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfRelativeHumidityMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Relative Humidity Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfRelativeHumidityMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId);

/** @brief Relative Humidity Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfRelativeHumidityMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId);

/** @brief Relative Humidity Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfRelativeHumidityMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 uint16_t manufacturerCode);

/** @brief Relative Humidity Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfRelativeHumidityMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 uint16_t manufacturerCode);

/** @brief Relative Humidity Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfRelativeHumidityMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                        EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                        uint8_t * message, EmberStatus status);

/** @brief Relative Humidity Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfRelativeHumidityMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                        EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                        uint8_t * message, EmberStatus status);

/** @brief Relative Humidity Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfRelativeHumidityMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         EmberAfAttributeType attributeType,
                                                                                         uint16_t size, uint8_t * value);

/** @brief Relative Humidity Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfRelativeHumidityMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         EmberAfAttributeType attributeType,
                                                                                         uint16_t size, uint8_t * value);

/** @brief Relative Humidity Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfRelativeHumidityMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Relative Humidity Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfRelativeHumidityMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Occupancy Sensing Cluster
//

/** @brief Occupancy Sensing Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOccupancySensingClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Occupancy Sensing Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOccupancySensingClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Occupancy Sensing Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOccupancySensingClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Occupancy Sensing Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOccupancySensingClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Occupancy Sensing Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOccupancySensingClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Occupancy Sensing Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOccupancySensingClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Occupancy Sensing Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOccupancySensingClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Occupancy Sensing Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOccupancySensingClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Occupancy Sensing Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOccupancySensingClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Occupancy Sensing Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOccupancySensingClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Occupancy Sensing Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOccupancySensingClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Occupancy Sensing Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOccupancySensingClusterClientTickCallback(chip::EndpointId endpoint);

//
// Carbon Monoxide Concentration Measurement Cluster
//

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId);

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                   EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                   uint8_t * message, EmberStatus status);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                   EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                   uint8_t * message, EmberStatus status);

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCarbonMonoxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Carbon Monoxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Carbon Monoxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCarbonMonoxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Carbon Dioxide Concentration Measurement Cluster
//

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCarbonDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Carbon Dioxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Carbon Dioxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCarbonDioxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Ethylene Concentration Measurement Cluster
//

/** @brief Ethylene Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthyleneConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Ethylene Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthyleneConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Ethylene Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthyleneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Ethylene Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthyleneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Ethylene Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthyleneConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Ethylene Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthyleneConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Ethylene Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Ethylene Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthyleneConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Ethylene Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthyleneConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Ethylene Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthyleneConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Ethylene Oxide Concentration Measurement Cluster
//

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfEthyleneOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Ethylene Oxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Ethylene Oxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfEthyleneOxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Hydrogen Concentration Measurement Cluster
//

/** @brief Hydrogen Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHydrogenConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Hydrogen Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHydrogenConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Hydrogen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHydrogenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Hydrogen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHydrogenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Hydrogen Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHydrogenConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Hydrogen Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHydrogenConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Hydrogen Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Hydrogen Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHydrogenConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Hydrogen Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHydrogenConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHydrogenConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Hydrogen Sulphide Concentration Measurement Cluster
//

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHydrogenSulphideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Hydrogen Sulphide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHydrogenSulphideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Nitric Oxide Concentration Measurement Cluster
//

/** @brief Nitric Oxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitricOxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitricOxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Nitric Oxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNitricOxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNitricOxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId);

/** @brief Nitric Oxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNitricOxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNitricOxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Nitric Oxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNitricOxideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                uint8_t * message, EmberStatus status);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNitricOxideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                uint8_t * message, EmberStatus status);

/** @brief Nitric Oxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 EmberAfAttributeType attributeType,
                                                                                                 uint16_t size, uint8_t * value);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNitricOxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 EmberAfAttributeType attributeType,
                                                                                                 uint16_t size, uint8_t * value);

/** @brief Nitric Oxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNitricOxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Nitric Oxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNitricOxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Nitrogen Dioxide Concentration Measurement Cluster
//

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfNitrogenDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Nitrogen Dioxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfNitrogenDioxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Oxygen Concentration Measurement Cluster
//

/** @brief Oxygen Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOxygenConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Oxygen Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOxygenConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Oxygen Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Oxygen Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Oxygen Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOxygenConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Oxygen Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOxygenConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Oxygen Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Oxygen Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Oxygen Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOxygenConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Oxygen Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOxygenConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Ozone Concentration Measurement Cluster
//

/** @brief Ozone Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOzoneConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Ozone Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfOzoneConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Ozone Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOzoneConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId);

/** @brief Ozone Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfOzoneConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId);

/** @brief Ozone Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOzoneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                   chip::AttributeId attributeId,
                                                                                                   uint16_t manufacturerCode);

/** @brief Ozone Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfOzoneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                   chip::AttributeId attributeId,
                                                                                                   uint16_t manufacturerCode);

/** @brief Ozone Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOzoneConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                          EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                          uint8_t * message, EmberStatus status);

/** @brief Ozone Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfOzoneConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                          EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                          uint8_t * message, EmberStatus status);

/** @brief Ozone Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOzoneConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                           chip::AttributeId attributeId,
                                                                                           EmberAfAttributeType attributeType,
                                                                                           uint16_t size, uint8_t * value);

/** @brief Ozone Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfOzoneConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                           chip::AttributeId attributeId,
                                                                                           EmberAfAttributeType attributeType,
                                                                                           uint16_t size, uint8_t * value);

/** @brief Ozone Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOzoneConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Ozone Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfOzoneConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Sulfur Dioxide Concentration Measurement Cluster
//

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                  EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                  uint8_t * message, EmberStatus status);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSulfurDioxideConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Sulfur Dioxide Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSulfurDioxideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Dissolved Oxygen Concentration Measurement Cluster
//

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfDissolvedOxygenConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Dissolved Oxygen Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfDissolvedOxygenConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Bromate Concentration Measurement Cluster
//

/** @brief Bromate Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromateConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Bromate Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromateConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Bromate Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromateConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId);

/** @brief Bromate Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromateConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId);

/** @brief Bromate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                     chip::AttributeId attributeId,
                                                                                                     uint16_t manufacturerCode);

/** @brief Bromate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                     chip::AttributeId attributeId,
                                                                                                     uint16_t manufacturerCode);

/** @brief Bromate Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromateConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                            EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                            uint8_t * message, EmberStatus status);

/** @brief Bromate Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromateConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                            EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                            uint8_t * message, EmberStatus status);

/** @brief Bromate Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromateConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             EmberAfAttributeType attributeType,
                                                                                             uint16_t size, uint8_t * value);

/** @brief Bromate Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromateConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             EmberAfAttributeType attributeType,
                                                                                             uint16_t size, uint8_t * value);

/** @brief Bromate Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromateConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Bromate Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromateConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Chloramines Concentration Measurement Cluster
//

/** @brief Chloramines Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloraminesConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Chloramines Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloraminesConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Chloramines Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChloraminesConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId);

/** @brief Chloramines Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChloraminesConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId);

/** @brief Chloramines Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChloraminesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chloramines Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChloraminesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chloramines Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChloraminesConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                uint8_t * message, EmberStatus status);

/** @brief Chloramines Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChloraminesConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                                EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                                uint8_t * message, EmberStatus status);

/** @brief Chloramines Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 EmberAfAttributeType attributeType,
                                                                                                 uint16_t size, uint8_t * value);

/** @brief Chloramines Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChloraminesConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                 chip::AttributeId attributeId,
                                                                                                 EmberAfAttributeType attributeType,
                                                                                                 uint16_t size, uint8_t * value);

/** @brief Chloramines Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChloraminesConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Chloramines Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChloraminesConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Chlorine Concentration Measurement Cluster
//

/** @brief Chlorine Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorineConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Chlorine Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorineConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Chlorine Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChlorineConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Chlorine Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChlorineConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Chlorine Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChlorineConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Chlorine Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChlorineConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Chlorine Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChlorineConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Chlorine Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChlorineConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Chlorine Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChlorineConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Chlorine Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChlorineConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Chlorine Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChlorineConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Chlorine Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChlorineConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Fecal coliform and E. Coli Concentration Measurement Cluster
//

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Fecal coliform and E. Coli Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFecalColiformAndEColiConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Fluoride Concentration Measurement Cluster
//

/** @brief Fluoride Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFluorideConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Fluoride Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfFluorideConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Fluoride Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFluorideConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Fluoride Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfFluorideConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId);

/** @brief Fluoride Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFluorideConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Fluoride Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfFluorideConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                      chip::AttributeId attributeId,
                                                                                                      uint16_t manufacturerCode);

/** @brief Fluoride Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFluorideConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Fluoride Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfFluorideConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                             EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                             uint8_t * message, EmberStatus status);

/** @brief Fluoride Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFluorideConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Fluoride Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfFluorideConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              EmberAfAttributeType attributeType,
                                                                                              uint16_t size, uint8_t * value);

/** @brief Fluoride Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFluorideConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Fluoride Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfFluorideConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Haloacetic Acids Concentration Measurement Cluster
//

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId);

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfHaloaceticAcidsConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Haloacetic Acids Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Haloacetic Acids Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfHaloaceticAcidsConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Total Trihalomethanes Concentration Measurement Cluster
//

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Total Trihalomethanes Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTotalTrihalomethanesConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Total Coliform Bacteria Concentration Measurement Cluster
//

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Total Coliform Bacteria Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTotalColiformBacteriaConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Turbidity Concentration Measurement Cluster
//

/** @brief Turbidity Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTurbidityConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Turbidity Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTurbidityConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Turbidity Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTurbidityConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Turbidity Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTurbidityConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Turbidity Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTurbidityConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Turbidity Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTurbidityConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Turbidity Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTurbidityConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Turbidity Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTurbidityConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Turbidity Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Turbidity Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTurbidityConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Turbidity Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTurbidityConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Turbidity Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTurbidityConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Copper Concentration Measurement Cluster
//

/** @brief Copper Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCopperConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Copper Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfCopperConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Copper Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCopperConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Copper Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfCopperConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Copper Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCopperConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Copper Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfCopperConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Copper Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCopperConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Copper Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfCopperConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Copper Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCopperConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Copper Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfCopperConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Copper Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCopperConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Copper Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfCopperConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Lead Concentration Measurement Cluster
//

/** @brief Lead Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLeadConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Lead Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLeadConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Lead Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLeadConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId);

/** @brief Lead Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLeadConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId);

/** @brief Lead Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLeadConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                  chip::AttributeId attributeId,
                                                                                                  uint16_t manufacturerCode);

/** @brief Lead Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLeadConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                  chip::AttributeId attributeId,
                                                                                                  uint16_t manufacturerCode);

/** @brief Lead Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLeadConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                         EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                         uint8_t * message, EmberStatus status);

/** @brief Lead Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLeadConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                         EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                         uint8_t * message, EmberStatus status);

/** @brief Lead Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLeadConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          EmberAfAttributeType attributeType,
                                                                                          uint16_t size, uint8_t * value);

/** @brief Lead Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLeadConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                          chip::AttributeId attributeId,
                                                                                          EmberAfAttributeType attributeType,
                                                                                          uint16_t size, uint8_t * value);

/** @brief Lead Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLeadConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Lead Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLeadConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Manganese Concentration Measurement Cluster
//

/** @brief Manganese Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfManganeseConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Manganese Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfManganeseConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Manganese Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfManganeseConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Manganese Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfManganeseConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Manganese Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfManganeseConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Manganese Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfManganeseConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Manganese Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfManganeseConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Manganese Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfManganeseConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Manganese Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfManganeseConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Manganese Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfManganeseConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Manganese Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfManganeseConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Manganese Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfManganeseConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Sulfate Concentration Measurement Cluster
//

/** @brief Sulfate Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfateConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Sulfate Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSulfateConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Sulfate Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSulfateConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId);

/** @brief Sulfate Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSulfateConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId);

/** @brief Sulfate Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSulfateConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                     chip::AttributeId attributeId,
                                                                                                     uint16_t manufacturerCode);

/** @brief Sulfate Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSulfateConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                     chip::AttributeId attributeId,
                                                                                                     uint16_t manufacturerCode);

/** @brief Sulfate Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSulfateConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                            EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                            uint8_t * message, EmberStatus status);

/** @brief Sulfate Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSulfateConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                            EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                            uint8_t * message, EmberStatus status);

/** @brief Sulfate Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSulfateConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             EmberAfAttributeType attributeType,
                                                                                             uint16_t size, uint8_t * value);

/** @brief Sulfate Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSulfateConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             EmberAfAttributeType attributeType,
                                                                                             uint16_t size, uint8_t * value);

/** @brief Sulfate Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSulfateConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Sulfate Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSulfateConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Bromodichloromethane Concentration Measurement Cluster
//

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromodichloromethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Bromodichloromethane Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Bromodichloromethane Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromodichloromethaneConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Bromoform Concentration Measurement Cluster
//

/** @brief Bromoform Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromoformConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Bromoform Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBromoformConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Bromoform Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromoformConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Bromoform Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBromoformConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId);

/** @brief Bromoform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromoformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Bromoform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBromoformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Bromoform Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromoformConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Bromoform Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBromoformConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                              EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                              uint8_t * message, EmberStatus status);

/** @brief Bromoform Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromoformConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Bromoform Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBromoformConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               EmberAfAttributeType attributeType,
                                                                                               uint16_t size, uint8_t * value);

/** @brief Bromoform Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromoformConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Bromoform Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBromoformConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Chlorodibromomethane Concentration Measurement Cluster
//

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientMessageSentCallback(
    const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
    EmberStatus status);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterServerPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChlorodibromomethaneConcentrationMeasurementClusterClientPreAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Chlorodibromomethane Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChlorodibromomethaneConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Chloroform Concentration Measurement Cluster
//

/** @brief Chloroform Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloroformConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Chloroform Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfChloroformConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Chloroform Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChloroformConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId);

/** @brief Chloroform Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfChloroformConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                    chip::AttributeId attributeId);

/** @brief Chloroform Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChloroformConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chloroform Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfChloroformConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(
    chip::EndpointId endpoint, chip::AttributeId attributeId, uint16_t manufacturerCode);

/** @brief Chloroform Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChloroformConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                               EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                               uint8_t * message, EmberStatus status);

/** @brief Chloroform Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfChloroformConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                               EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                               uint8_t * message, EmberStatus status);

/** @brief Chloroform Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChloroformConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                EmberAfAttributeType attributeType,
                                                                                                uint16_t size, uint8_t * value);

/** @brief Chloroform Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfChloroformConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                chip::AttributeId attributeId,
                                                                                                EmberAfAttributeType attributeType,
                                                                                                uint16_t size, uint8_t * value);

/** @brief Chloroform Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChloroformConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Chloroform Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfChloroformConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Sodium Concentration Measurement Cluster
//

/** @brief Sodium Concentration Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSodiumConcentrationMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Sodium Concentration Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSodiumConcentrationMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Sodium Concentration Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSodiumConcentrationMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Sodium Concentration Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSodiumConcentrationMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId);

/** @brief Sodium Concentration Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSodiumConcentrationMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Sodium Concentration Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSodiumConcentrationMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                                    chip::AttributeId attributeId,
                                                                                                    uint16_t manufacturerCode);

/** @brief Sodium Concentration Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSodiumConcentrationMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Sodium Concentration Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSodiumConcentrationMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                           EmberApsFrame * apsFrame, uint16_t msgLen,
                                                                           uint8_t * message, EmberStatus status);

/** @brief Sodium Concentration Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSodiumConcentrationMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Sodium Concentration Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSodiumConcentrationMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                            chip::AttributeId attributeId,
                                                                                            EmberAfAttributeType attributeType,
                                                                                            uint16_t size, uint8_t * value);

/** @brief Sodium Concentration Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSodiumConcentrationMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Sodium Concentration Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSodiumConcentrationMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// IAS Zone Cluster
//

/** @brief IAS Zone Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasZoneClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief IAS Zone Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasZoneClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief IAS Zone Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasZoneClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS Zone Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasZoneClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS Zone Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasZoneClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             uint16_t manufacturerCode);

/** @brief IAS Zone Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasZoneClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             uint16_t manufacturerCode);

/** @brief IAS Zone Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasZoneClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                    uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS Zone Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasZoneClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                    uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS Zone Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasZoneClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                     EmberAfAttributeType attributeType, uint16_t size,
                                                                     uint8_t * value);

/** @brief IAS Zone Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasZoneClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                     EmberAfAttributeType attributeType, uint16_t size,
                                                                     uint8_t * value);

/** @brief IAS Zone Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasZoneClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief IAS Zone Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasZoneClusterClientTickCallback(chip::EndpointId endpoint);

//
// IAS ACE Cluster
//

/** @brief IAS ACE Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasAceClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief IAS ACE Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasAceClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief IAS ACE Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasAceClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS ACE Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasAceClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS ACE Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasAceClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief IAS ACE Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasAceClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                            chip::AttributeId attributeId,
                                                                            uint16_t manufacturerCode);

/** @brief IAS ACE Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasAceClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS ACE Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasAceClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                   uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS ACE Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasAceClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief IAS ACE Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasAceClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                    EmberAfAttributeType attributeType, uint16_t size,
                                                                    uint8_t * value);

/** @brief IAS ACE Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasAceClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief IAS ACE Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasAceClusterClientTickCallback(chip::EndpointId endpoint);

//
// IAS WD Cluster
//

/** @brief IAS WD Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasWdClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief IAS WD Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfIasWdClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief IAS WD Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasWdClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS WD Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfIasWdClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief IAS WD Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasWdClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief IAS WD Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfIasWdClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           uint16_t manufacturerCode);

/** @brief IAS WD Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasWdClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS WD Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfIasWdClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                  uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief IAS WD Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasWdClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief IAS WD Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfIasWdClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                   EmberAfAttributeType attributeType, uint16_t size,
                                                                   uint8_t * value);

/** @brief IAS WD Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasWdClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief IAS WD Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfIasWdClusterClientTickCallback(chip::EndpointId endpoint);

//
// Wake on LAN Cluster
//

/** @brief Wake on LAN Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWakeOnLanClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Wake on LAN Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfWakeOnLanClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Wake on LAN Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWakeOnLanClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Wake on LAN Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfWakeOnLanClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Wake on LAN Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWakeOnLanClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief Wake on LAN Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfWakeOnLanClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief Wake on LAN Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWakeOnLanClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Wake on LAN Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfWakeOnLanClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Wake on LAN Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWakeOnLanClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief Wake on LAN Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfWakeOnLanClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief Wake on LAN Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWakeOnLanClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Wake on LAN Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfWakeOnLanClusterClientTickCallback(chip::EndpointId endpoint);

//
// TV Channel Cluster
//

/** @brief TV Channel Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTvChannelClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief TV Channel Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTvChannelClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief TV Channel Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTvChannelClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief TV Channel Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTvChannelClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief TV Channel Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTvChannelClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief TV Channel Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTvChannelClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief TV Channel Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTvChannelClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief TV Channel Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTvChannelClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief TV Channel Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTvChannelClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief TV Channel Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTvChannelClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief TV Channel Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTvChannelClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief TV Channel Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTvChannelClusterClientTickCallback(chip::EndpointId endpoint);

//
// Target Navigator Cluster
//

/** @brief Target Navigator Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTargetNavigatorClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Target Navigator Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTargetNavigatorClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Target Navigator Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTargetNavigatorClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Target Navigator Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTargetNavigatorClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Target Navigator Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTargetNavigatorClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Target Navigator Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTargetNavigatorClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Target Navigator Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTargetNavigatorClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Target Navigator Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTargetNavigatorClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Target Navigator Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTargetNavigatorClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Target Navigator Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTargetNavigatorClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Target Navigator Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTargetNavigatorClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Target Navigator Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTargetNavigatorClusterClientTickCallback(chip::EndpointId endpoint);

//
// Media Playback Cluster
//

/** @brief Media Playback Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaPlaybackClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Media Playback Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaPlaybackClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Media Playback Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMediaPlaybackClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Media Playback Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMediaPlaybackClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Media Playback Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMediaPlaybackClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId,
                                                                                   uint16_t manufacturerCode);

/** @brief Media Playback Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMediaPlaybackClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId,
                                                                                   uint16_t manufacturerCode);

/** @brief Media Playback Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMediaPlaybackClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                          EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                          EmberStatus status);

/** @brief Media Playback Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMediaPlaybackClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                          EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                          EmberStatus status);

/** @brief Media Playback Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMediaPlaybackClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           EmberAfAttributeType attributeType, uint16_t size,
                                                                           uint8_t * value);

/** @brief Media Playback Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMediaPlaybackClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                           EmberAfAttributeType attributeType, uint16_t size,
                                                                           uint8_t * value);

/** @brief Media Playback Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMediaPlaybackClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Media Playback Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMediaPlaybackClusterClientTickCallback(chip::EndpointId endpoint);

//
// Media Input Cluster
//

/** @brief Media Input Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaInputClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Media Input Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMediaInputClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Media Input Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMediaInputClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Media Input Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMediaInputClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Media Input Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMediaInputClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Media Input Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMediaInputClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                uint16_t manufacturerCode);

/** @brief Media Input Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMediaInputClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Media Input Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMediaInputClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                       uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Media Input Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMediaInputClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Media Input Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMediaInputClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                        EmberAfAttributeType attributeType, uint16_t size,
                                                                        uint8_t * value);

/** @brief Media Input Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMediaInputClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Media Input Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMediaInputClusterClientTickCallback(chip::EndpointId endpoint);

//
// Low Power Cluster
//

/** @brief Low Power Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLowPowerClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Low Power Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfLowPowerClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Low Power Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLowPowerClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Low Power Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfLowPowerClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Low Power Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLowPowerClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Low Power Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfLowPowerClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              uint16_t manufacturerCode);

/** @brief Low Power Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLowPowerClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Low Power Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfLowPowerClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                     uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Low Power Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLowPowerClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Low Power Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfLowPowerClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                      EmberAfAttributeType attributeType, uint16_t size,
                                                                      uint8_t * value);

/** @brief Low Power Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLowPowerClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Low Power Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfLowPowerClusterClientTickCallback(chip::EndpointId endpoint);

//
// Keypad Input Cluster
//

/** @brief Keypad Input Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfKeypadInputClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Keypad Input Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfKeypadInputClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Keypad Input Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfKeypadInputClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Keypad Input Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfKeypadInputClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Keypad Input Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfKeypadInputClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Keypad Input Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfKeypadInputClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Keypad Input Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfKeypadInputClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Keypad Input Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfKeypadInputClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Keypad Input Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfKeypadInputClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Keypad Input Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfKeypadInputClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Keypad Input Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfKeypadInputClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Keypad Input Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfKeypadInputClusterClientTickCallback(chip::EndpointId endpoint);

//
// Content Launcher Cluster
//

/** @brief Content Launcher Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfContentLauncherClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Content Launcher Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfContentLauncherClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Content Launcher Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfContentLauncherClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Content Launcher Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfContentLauncherClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Content Launcher Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfContentLauncherClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Content Launcher Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfContentLauncherClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     uint16_t manufacturerCode);

/** @brief Content Launcher Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfContentLauncherClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Content Launcher Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfContentLauncherClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                            EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                            EmberStatus status);

/** @brief Content Launcher Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfContentLauncherClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Content Launcher Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfContentLauncherClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             EmberAfAttributeType attributeType, uint16_t size,
                                                                             uint8_t * value);

/** @brief Content Launcher Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfContentLauncherClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Content Launcher Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfContentLauncherClusterClientTickCallback(chip::EndpointId endpoint);

//
// Audio Output Cluster
//

/** @brief Audio Output Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAudioOutputClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Audio Output Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAudioOutputClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Audio Output Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAudioOutputClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Audio Output Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAudioOutputClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Audio Output Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAudioOutputClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Audio Output Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAudioOutputClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Audio Output Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAudioOutputClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Audio Output Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAudioOutputClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Audio Output Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAudioOutputClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Audio Output Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAudioOutputClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Audio Output Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAudioOutputClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Audio Output Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAudioOutputClusterClientTickCallback(chip::EndpointId endpoint);

//
// Application Launcher Cluster
//

/** @brief Application Launcher Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationLauncherClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Application Launcher Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationLauncherClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Application Launcher Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplicationLauncherClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Application Launcher Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplicationLauncherClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Application Launcher Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplicationLauncherClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Application Launcher Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplicationLauncherClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Application Launcher Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplicationLauncherClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Application Launcher Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplicationLauncherClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Application Launcher Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplicationLauncherClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Application Launcher Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplicationLauncherClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Application Launcher Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplicationLauncherClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Application Launcher Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplicationLauncherClusterClientTickCallback(chip::EndpointId endpoint);

//
// Application Basic Cluster
//

/** @brief Application Basic Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationBasicClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Application Basic Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplicationBasicClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Application Basic Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplicationBasicClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Application Basic Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplicationBasicClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Application Basic Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplicationBasicClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Application Basic Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplicationBasicClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      uint16_t manufacturerCode);

/** @brief Application Basic Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplicationBasicClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Application Basic Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplicationBasicClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                             EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                             EmberStatus status);

/** @brief Application Basic Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplicationBasicClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Application Basic Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplicationBasicClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                              chip::AttributeId attributeId,
                                                                              EmberAfAttributeType attributeType, uint16_t size,
                                                                              uint8_t * value);

/** @brief Application Basic Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplicationBasicClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Application Basic Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplicationBasicClusterClientTickCallback(chip::EndpointId endpoint);

//
// Account Login Cluster
//

/** @brief Account Login Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAccountLoginClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Account Login Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfAccountLoginClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Account Login Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAccountLoginClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Account Login Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfAccountLoginClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Account Login Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAccountLoginClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Account Login Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfAccountLoginClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                  chip::AttributeId attributeId,
                                                                                  uint16_t manufacturerCode);

/** @brief Account Login Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAccountLoginClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Account Login Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfAccountLoginClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                         uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Account Login Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAccountLoginClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Account Login Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfAccountLoginClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                          EmberAfAttributeType attributeType, uint16_t size,
                                                                          uint8_t * value);

/** @brief Account Login Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAccountLoginClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Account Login Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfAccountLoginClusterClientTickCallback(chip::EndpointId endpoint);

//
// Test Cluster Cluster
//

/** @brief Test Cluster Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTestClusterClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Test Cluster Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfTestClusterClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Test Cluster Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTestClusterClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Test Cluster Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfTestClusterClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Test Cluster Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTestClusterClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Test Cluster Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfTestClusterClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 uint16_t manufacturerCode);

/** @brief Test Cluster Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTestClusterClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Test Cluster Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfTestClusterClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                        uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Test Cluster Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTestClusterClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Test Cluster Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfTestClusterClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                         EmberAfAttributeType attributeType, uint16_t size,
                                                                         uint8_t * value);

/** @brief Test Cluster Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTestClusterClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Test Cluster Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfTestClusterClusterClientTickCallback(chip::EndpointId endpoint);

//
// Messaging Cluster
//

/** @brief Messaging Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMessagingClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Messaging Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMessagingClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Messaging Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMessagingClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Messaging Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMessagingClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Messaging Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMessagingClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief Messaging Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMessagingClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                               chip::AttributeId attributeId,
                                                                               uint16_t manufacturerCode);

/** @brief Messaging Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMessagingClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Messaging Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMessagingClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                      uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Messaging Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMessagingClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief Messaging Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMessagingClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                       EmberAfAttributeType attributeType, uint16_t size,
                                                                       uint8_t * value);

/** @brief Messaging Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMessagingClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Messaging Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMessagingClusterClientTickCallback(chip::EndpointId endpoint);

//
// Appliance Identification Cluster
//

/** @brief Appliance Identification Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceIdentificationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Identification Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceIdentificationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Identification Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceIdentificationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Identification Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceIdentificationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Identification Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Appliance Identification Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Appliance Identification Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceIdentificationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Appliance Identification Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceIdentificationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Appliance Identification Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceIdentificationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Appliance Identification Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceIdentificationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Appliance Identification Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceIdentificationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Appliance Identification Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceIdentificationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Meter Identification Cluster
//

/** @brief Meter Identification Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMeterIdentificationClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Meter Identification Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfMeterIdentificationClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Meter Identification Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMeterIdentificationClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Meter Identification Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfMeterIdentificationClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Meter Identification Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMeterIdentificationClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Meter Identification Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfMeterIdentificationClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Meter Identification Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMeterIdentificationClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Meter Identification Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfMeterIdentificationClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Meter Identification Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMeterIdentificationClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Meter Identification Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfMeterIdentificationClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Meter Identification Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMeterIdentificationClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Meter Identification Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfMeterIdentificationClusterClientTickCallback(chip::EndpointId endpoint);

//
// Appliance Events and Alert Cluster
//

/** @brief Appliance Events and Alert Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceEventsAndAlertClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Events and Alert Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceEventsAndAlertClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Events and Alert Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceEventsAndAlertClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Events and Alert Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceEventsAndAlertClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Events and Alert Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceEventsAndAlertClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Appliance Events and Alert Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceEventsAndAlertClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                             chip::AttributeId attributeId,
                                                                                             uint16_t manufacturerCode);

/** @brief Appliance Events and Alert Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceEventsAndAlertClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Appliance Events and Alert Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceEventsAndAlertClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                    EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                    EmberStatus status);

/** @brief Appliance Events and Alert Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceEventsAndAlertClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Appliance Events and Alert Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceEventsAndAlertClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                     chip::AttributeId attributeId,
                                                                                     EmberAfAttributeType attributeType,
                                                                                     uint16_t size, uint8_t * value);

/** @brief Appliance Events and Alert Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceEventsAndAlertClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Appliance Events and Alert Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceEventsAndAlertClusterClientTickCallback(chip::EndpointId endpoint);

//
// Appliance Statistics Cluster
//

/** @brief Appliance Statistics Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceStatisticsClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Statistics Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfApplianceStatisticsClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Appliance Statistics Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceStatisticsClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Statistics Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfApplianceStatisticsClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Appliance Statistics Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceStatisticsClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Appliance Statistics Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfApplianceStatisticsClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                         chip::AttributeId attributeId,
                                                                                         uint16_t manufacturerCode);

/** @brief Appliance Statistics Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceStatisticsClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Appliance Statistics Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfApplianceStatisticsClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                EmberStatus status);

/** @brief Appliance Statistics Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceStatisticsClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Appliance Statistics Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfApplianceStatisticsClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                 chip::AttributeId attributeId,
                                                                                 EmberAfAttributeType attributeType, uint16_t size,
                                                                                 uint8_t * value);

/** @brief Appliance Statistics Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceStatisticsClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Appliance Statistics Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfApplianceStatisticsClusterClientTickCallback(chip::EndpointId endpoint);

//
// Electrical Measurement Cluster
//

/** @brief Electrical Measurement Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfElectricalMeasurementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Electrical Measurement Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfElectricalMeasurementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Electrical Measurement Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfElectricalMeasurementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Electrical Measurement Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfElectricalMeasurementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Electrical Measurement Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfElectricalMeasurementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                           chip::AttributeId attributeId,
                                                                                           uint16_t manufacturerCode);

/** @brief Electrical Measurement Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfElectricalMeasurementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                           chip::AttributeId attributeId,
                                                                                           uint16_t manufacturerCode);

/** @brief Electrical Measurement Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfElectricalMeasurementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                  EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                  EmberStatus status);

/** @brief Electrical Measurement Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfElectricalMeasurementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                  EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                  EmberStatus status);

/** @brief Electrical Measurement Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfElectricalMeasurementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId,
                                                                                   EmberAfAttributeType attributeType,
                                                                                   uint16_t size, uint8_t * value);

/** @brief Electrical Measurement Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfElectricalMeasurementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                   chip::AttributeId attributeId,
                                                                                   EmberAfAttributeType attributeType,
                                                                                   uint16_t size, uint8_t * value);

/** @brief Electrical Measurement Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfElectricalMeasurementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Electrical Measurement Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfElectricalMeasurementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Binding Cluster
//

/** @brief Binding Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBindingClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Binding Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfBindingClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Binding Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBindingClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Binding Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfBindingClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Binding Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBindingClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             uint16_t manufacturerCode);

/** @brief Binding Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfBindingClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                             chip::AttributeId attributeId,
                                                                             uint16_t manufacturerCode);

/** @brief Binding Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBindingClusterServerMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                    uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Binding Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfBindingClusterClientMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame,
                                                    uint16_t msgLen, uint8_t * message, EmberStatus status);

/** @brief Binding Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBindingClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                     EmberAfAttributeType attributeType, uint16_t size,
                                                                     uint8_t * value);

/** @brief Binding Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfBindingClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId,
                                                                     EmberAfAttributeType attributeType, uint16_t size,
                                                                     uint8_t * value);

/** @brief Binding Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBindingClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Binding Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfBindingClusterClientTickCallback(chip::EndpointId endpoint);

//
// Group Key Management Cluster
//

/** @brief Group Key Management Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupKeyManagementClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Group Key Management Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfGroupKeyManagementClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Group Key Management Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGroupKeyManagementClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Group Key Management Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfGroupKeyManagementClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Group Key Management Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGroupKeyManagementClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Group Key Management Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfGroupKeyManagementClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                        chip::AttributeId attributeId,
                                                                                        uint16_t manufacturerCode);

/** @brief Group Key Management Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGroupKeyManagementClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Group Key Management Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfGroupKeyManagementClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                               EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                               EmberStatus status);

/** @brief Group Key Management Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGroupKeyManagementClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Group Key Management Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfGroupKeyManagementClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                chip::AttributeId attributeId,
                                                                                EmberAfAttributeType attributeType, uint16_t size,
                                                                                uint8_t * value);

/** @brief Group Key Management Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGroupKeyManagementClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Group Key Management Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfGroupKeyManagementClusterClientTickCallback(chip::EndpointId endpoint);

//
// Sample Mfg Specific Cluster Cluster
//

/** @brief Sample Mfg Specific Cluster Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificClusterClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificClusterClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSampleMfgSpecificClusterClusterServerAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Sample Mfg Specific Cluster Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSampleMfgSpecificClusterClusterClientAttributeChangedCallback(chip::EndpointId endpoint, chip::AttributeId attributeId);

/** @brief Sample Mfg Specific Cluster Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSampleMfgSpecificClusterClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief Sample Mfg Specific Cluster Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSampleMfgSpecificClusterClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                              chip::AttributeId attributeId,
                                                                                              uint16_t manufacturerCode);

/** @brief Sample Mfg Specific Cluster Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSampleMfgSpecificClusterClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief Sample Mfg Specific Cluster Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSampleMfgSpecificClusterClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                     EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                     EmberStatus status);

/** @brief Sample Mfg Specific Cluster Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSampleMfgSpecificClusterClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief Sample Mfg Specific Cluster Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSampleMfgSpecificClusterClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                      chip::AttributeId attributeId,
                                                                                      EmberAfAttributeType attributeType,
                                                                                      uint16_t size, uint8_t * value);

/** @brief Sample Mfg Specific Cluster Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSampleMfgSpecificClusterClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSampleMfgSpecificClusterClusterClientTickCallback(chip::EndpointId endpoint);

//
// Sample Mfg Specific Cluster 2 Cluster
//

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Init
 *
 * Server Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificCluster2ClusterServerInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Init
 *
 * Client Init
 *
 * @param endpoint    Endpoint that is being initialized
 */
void emberAfSampleMfgSpecificCluster2ClusterClientInitCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Attribute Changed
 *
 * Server Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSampleMfgSpecificCluster2ClusterServerAttributeChangedCallback(chip::EndpointId endpoint,
                                                                           chip::AttributeId attributeId);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Attribute Changed
 *
 * Client Attribute Changed
 *
 * @param endpoint    Endpoint that is being initialized
 * @param attributeId Attribute that changed
 */
void emberAfSampleMfgSpecificCluster2ClusterClientAttributeChangedCallback(chip::EndpointId endpoint,
                                                                           chip::AttributeId attributeId);

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Manufacturer Specific Attribute Changed
 *
 * Server Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSampleMfgSpecificCluster2ClusterServerManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               uint16_t manufacturerCode);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Manufacturer Specific Attribute Changed
 *
 * Client Manufacturer Specific Attribute Changed
 *
 * @param endpoint          Endpoint that is being initialized
 * @param attributeId       Attribute that changed
 * @param manufacturerCode  Manufacturer Code of the attribute that changed
 */
void emberAfSampleMfgSpecificCluster2ClusterClientManufacturerSpecificAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                               chip::AttributeId attributeId,
                                                                                               uint16_t manufacturerCode);

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Message Sent
 *
 * Server Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSampleMfgSpecificCluster2ClusterServerMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                      EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                      EmberStatus status);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Message Sent
 *
 * Client Message Sent
 *
 * @param type               The type of message sent
 * @param destination        The destination to which the message was sent
 * @param apsFrame           The APS frame for the message
 * @param msgLen             The length of the message
 * @param message            The message that was sent
 * @param status             The status of the sent message
 */
void emberAfSampleMfgSpecificCluster2ClusterClientMessageSentCallback(const chip::MessageSendDestination & destination,
                                                                      EmberApsFrame * apsFrame, uint16_t msgLen, uint8_t * message,
                                                                      EmberStatus status);

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Pre Attribute Changed
 *
 * Server Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSampleMfgSpecificCluster2ClusterServerPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId,
                                                                                       EmberAfAttributeType attributeType,
                                                                                       uint16_t size, uint8_t * value);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Pre Attribute Changed
 *
 * Client Pre Attribute Changed
 *
 * @param endpoint      Endpoint that is being initialized
 * @param attributeId   Attribute to be changed
 * @param attributeType Attribute type
 * @param size          Attribute size
 * @param value         Attribute value
 */
EmberAfStatus emberAfSampleMfgSpecificCluster2ClusterClientPreAttributeChangedCallback(chip::EndpointId endpoint,
                                                                                       chip::AttributeId attributeId,
                                                                                       EmberAfAttributeType attributeType,
                                                                                       uint16_t size, uint8_t * value);

/** @brief Sample Mfg Specific Cluster 2 Cluster Server Tick
 *
 * Server Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSampleMfgSpecificCluster2ClusterServerTickCallback(chip::EndpointId endpoint);

/** @brief Sample Mfg Specific Cluster 2 Cluster Client Tick
 *
 * Client Tick
 *
 * @param endpoint  Endpoint that is being served
 */
void emberAfSampleMfgSpecificCluster2ClusterClientTickCallback(chip::EndpointId endpoint);

// Cluster Commands Callback

/**
 * @brief  Cluster Identify Command callback (from client)
 */
bool emberAfIdentifyClusterIdentifyCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                            uint16_t identifyTime);
/**
 * @brief  Cluster IdentifyQueryResponse Command callback (from server)
 */
bool emberAfIdentifyClusterIdentifyQueryResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                         uint16_t timeout);
/**
 * @brief  Cluster IdentifyQuery Command callback (from client)
 */
bool emberAfIdentifyClusterIdentifyQueryCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster EZModeInvoke Command callback (from client)
 */
bool emberAfIdentifyClusterEZModeInvokeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t action);
/**
 * @brief  Cluster UpdateCommissionState Command callback (from client)
 */
bool emberAfIdentifyClusterUpdateCommissionStateCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                         uint8_t action, uint8_t commissionStateMask);
/**
 * @brief  Cluster TriggerEffect Command callback (from client)
 */
bool emberAfIdentifyClusterTriggerEffectCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                 uint8_t effectId, uint8_t effectVariant);
/**
 * @brief  Cluster AddGroup Command callback (from client)
 */
bool emberAfGroupsClusterAddGroupCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                          uint8_t * groupName);
/**
 * @brief  Cluster AddGroupResponse Command callback (from server)
 */
bool emberAfGroupsClusterAddGroupResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                  uint16_t groupId);
/**
 * @brief  Cluster ViewGroup Command callback (from client)
 */
bool emberAfGroupsClusterViewGroupCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId);
/**
 * @brief  Cluster ViewGroupResponse Command callback (from server)
 */
bool emberAfGroupsClusterViewGroupResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                   uint16_t groupId, uint8_t * groupName);
/**
 * @brief  Cluster GetGroupMembership Command callback (from client)
 */
bool emberAfGroupsClusterGetGroupMembershipCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint8_t groupCount,
                                                    /* TYPE WARNING: array array defaults to */ uint8_t * groupList);
/**
 * @brief  Cluster GetGroupMembershipResponse Command callback (from server)
 */
bool emberAfGroupsClusterGetGroupMembershipResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t capacity, uint8_t groupCount,
                                                            /* TYPE WARNING: array array defaults to */ uint8_t * groupList);
/**
 * @brief  Cluster RemoveGroup Command callback (from client)
 */
bool emberAfGroupsClusterRemoveGroupCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId);
/**
 * @brief  Cluster RemoveGroupResponse Command callback (from server)
 */
bool emberAfGroupsClusterRemoveGroupResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                     uint8_t status, uint16_t groupId);
/**
 * @brief  Cluster RemoveAllGroups Command callback (from client)
 */
bool emberAfGroupsClusterRemoveAllGroupsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster AddGroupIfIdentifying Command callback (from client)
 */
bool emberAfGroupsClusterAddGroupIfIdentifyingCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint16_t groupId, uint8_t * groupName);
/**
 * @brief  Cluster AddScene Command callback (from client)
 */
bool emberAfScenesClusterAddSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                          uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName,
                                          /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
/**
 * @brief  Cluster AddSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterAddSceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                  uint16_t groupId, uint8_t sceneId);
/**
 * @brief  Cluster ViewScene Command callback (from client)
 */
bool emberAfScenesClusterViewSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                           uint8_t sceneId);
/**
 * @brief  Cluster ViewSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterViewSceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                   uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName,
                                                   /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
/**
 * @brief  Cluster RemoveScene Command callback (from client)
 */
bool emberAfScenesClusterRemoveSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                             uint8_t sceneId);
/**
 * @brief  Cluster RemoveSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterRemoveSceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                     uint8_t status, uint16_t groupId, uint8_t sceneId);
/**
 * @brief  Cluster RemoveAllScenes Command callback (from client)
 */
bool emberAfScenesClusterRemoveAllScenesCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                 uint16_t groupId);
/**
 * @brief  Cluster RemoveAllScenesResponse Command callback (from server)
 */
bool emberAfScenesClusterRemoveAllScenesResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                         uint8_t status, uint16_t groupId);
/**
 * @brief  Cluster StoreScene Command callback (from client)
 */
bool emberAfScenesClusterStoreSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                            uint8_t sceneId);
/**
 * @brief  Cluster StoreSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterStoreSceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint8_t status, uint16_t groupId, uint8_t sceneId);
/**
 * @brief  Cluster RecallScene Command callback (from client)
 */
bool emberAfScenesClusterRecallSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t groupId,
                                             uint8_t sceneId, uint16_t transitionTime);
/**
 * @brief  Cluster GetSceneMembership Command callback (from client)
 */
bool emberAfScenesClusterGetSceneMembershipCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint16_t groupId);
/**
 * @brief  Cluster GetSceneMembershipResponse Command callback (from server)
 */
bool emberAfScenesClusterGetSceneMembershipResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t status, uint8_t capacity, uint16_t groupId, uint8_t sceneCount,
                                                            /* TYPE WARNING: array array defaults to */ uint8_t * sceneList);
/**
 * @brief  Cluster EnhancedAddScene Command callback (from client)
 */
bool emberAfScenesClusterEnhancedAddSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                  uint16_t groupId, uint8_t sceneId, uint16_t transitionTime, uint8_t * sceneName,
                                                  /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
/**
 * @brief  Cluster EnhancedAddSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterEnhancedAddSceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          uint8_t status, uint16_t groupId, uint8_t sceneId);
/**
 * @brief  Cluster EnhancedViewScene Command callback (from client)
 */
bool emberAfScenesClusterEnhancedViewSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                   uint16_t groupId, uint8_t sceneId);
/**
 * @brief  Cluster EnhancedViewSceneResponse Command callback (from server)
 */
bool emberAfScenesClusterEnhancedViewSceneResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status, uint16_t groupId, uint8_t sceneId,
    uint16_t transitionTime, uint8_t * sceneName, /* TYPE WARNING: array array defaults to */ uint8_t * extensionFieldSets);
/**
 * @brief  Cluster CopyScene Command callback (from client)
 */
bool emberAfScenesClusterCopySceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t mode,
                                           uint16_t groupIdFrom, uint8_t sceneIdFrom, uint16_t groupIdTo, uint8_t sceneIdTo);
/**
 * @brief  Cluster CopySceneResponse Command callback (from server)
 */
bool emberAfScenesClusterCopySceneResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                   uint16_t groupIdFrom, uint8_t sceneIdFrom);
/**
 * @brief  Cluster Off Command callback (from client)
 */
bool emberAfOnOffClusterOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SampleMfgSpecificOffWithTransition Command callback (from client)
 */
bool emberAfOnOffClusterSampleMfgSpecificOffWithTransitionCallback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster On Command callback (from client)
 */
bool emberAfOnOffClusterOnCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SampleMfgSpecificOnWithTransition Command callback (from client)
 */
bool emberAfOnOffClusterSampleMfgSpecificOnWithTransitionCallback(chip::EndpointId endpoint,
                                                                  chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SampleMfgSpecificOnWithTransition2 Command callback (from client)
 */
bool emberAfOnOffClusterSampleMfgSpecificOnWithTransition2Callback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster Toggle Command callback (from client)
 */
bool emberAfOnOffClusterToggleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SampleMfgSpecificToggleWithTransition Command callback (from client)
 */
bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransitionCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SampleMfgSpecificToggleWithTransition2 Command callback (from client)
 */
bool emberAfOnOffClusterSampleMfgSpecificToggleWithTransition2Callback(chip::EndpointId endpoint,
                                                                       chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster OffWithEffect Command callback (from client)
 */
bool emberAfOnOffClusterOffWithEffectCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t EffectId,
                                              uint8_t EffectVariant);
/**
 * @brief  Cluster OnWithRecallGlobalScene Command callback (from client)
 */
bool emberAfOnOffClusterOnWithRecallGlobalSceneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster OnWithTimedOff Command callback (from client)
 */
bool emberAfOnOffClusterOnWithTimedOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                               uint8_t OnOffControl, uint16_t OnTime, uint16_t OffWaitTime);
/**
 * @brief  Cluster MoveToLevel Command callback (from client)
 */
bool emberAfLevelControlClusterMoveToLevelCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t level,
                                                   uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride);
/**
 * @brief  Cluster Move Command callback (from client)
 */
bool emberAfLevelControlClusterMoveCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t moveMode,
                                            uint8_t rate, uint8_t optionMask, uint8_t optionOverride);
/**
 * @brief  Cluster Step Command callback (from client)
 */
bool emberAfLevelControlClusterStepCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t stepMode,
                                            uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride);
/**
 * @brief  Cluster Stop Command callback (from client)
 */
bool emberAfLevelControlClusterStopCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t optionMask,
                                            uint8_t optionOverride);
/**
 * @brief  Cluster MoveToLevelWithOnOff Command callback (from client)
 */
bool emberAfLevelControlClusterMoveToLevelWithOnOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            uint8_t level, uint16_t transitionTime);
/**
 * @brief  Cluster MoveWithOnOff Command callback (from client)
 */
bool emberAfLevelControlClusterMoveWithOnOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                     uint8_t moveMode, uint8_t rate);
/**
 * @brief  Cluster StepWithOnOff Command callback (from client)
 */
bool emberAfLevelControlClusterStepWithOnOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                     uint8_t stepMode, uint8_t stepSize, uint16_t transitionTime);
/**
 * @brief  Cluster StopWithOnOff Command callback (from client)
 */
bool emberAfLevelControlClusterStopWithOnOffCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ResetAlarm Command callback (from client)
 */
bool emberAfAlarmsClusterResetAlarmCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t alarmCode,
                                            chip::ClusterId clusterId);
/**
 * @brief  Cluster Alarm Command callback (from server)
 */
bool emberAfAlarmsClusterAlarmCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t alarmCode,
                                       chip::ClusterId clusterId);
/**
 * @brief  Cluster ResetAllAlarms Command callback (from client)
 */
bool emberAfAlarmsClusterResetAllAlarmsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetAlarmResponse Command callback (from server)
 */
bool emberAfAlarmsClusterGetAlarmResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status,
                                                  uint8_t alarmCode, chip::ClusterId clusterId, uint32_t timeStamp);
/**
 * @brief  Cluster GetAlarm Command callback (from client)
 */
bool emberAfAlarmsClusterGetAlarmCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ResetAlarmLog Command callback (from client)
 */
bool emberAfAlarmsClusterResetAlarmLogCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster PowerProfileRequest Command callback (from client)
 */
bool emberAfPowerProfileClusterPowerProfileRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                           uint8_t powerProfileId);
/**
 * @brief  Cluster PowerProfileNotification Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfileNotificationCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t totalProfileNum, uint8_t powerProfileId,
    uint8_t numOfTransferredPhases, /* TYPE WARNING: array array defaults to */ uint8_t * transferredPhases);
/**
 * @brief  Cluster PowerProfileStateRequest Command callback (from client)
 */
bool emberAfPowerProfileClusterPowerProfileStateRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster PowerProfileResponse Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfileResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t totalProfileNum, uint8_t powerProfileId,
    uint8_t numOfTransferredPhases, /* TYPE WARNING: array array defaults to */ uint8_t * transferredPhases);
/**
 * @brief  Cluster GetPowerProfilePriceResponse Command callback (from client)
 */
bool emberAfPowerProfileClusterGetPowerProfilePriceResponseCallback(chip::EndpointId endpoint,
                                                                    chip::app::CommandHandler * commandObj, uint8_t powerProfileId,
                                                                    uint16_t currency, uint32_t price, uint8_t priceTrailingDigit);
/**
 * @brief  Cluster PowerProfileStateResponse Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfileStateResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t powerProfileCount,
    /* TYPE WARNING: array array defaults to */ uint8_t * powerProfileRecords);
/**
 * @brief  Cluster GetOverallSchedulePriceResponse Command callback (from client)
 */
bool emberAfPowerProfileClusterGetOverallSchedulePriceResponseCallback(chip::EndpointId endpoint,
                                                                       chip::app::CommandHandler * commandObj, uint16_t currency,
                                                                       uint32_t price, uint8_t priceTrailingDigit);
/**
 * @brief  Cluster GetPowerProfilePrice Command callback (from server)
 */
bool emberAfPowerProfileClusterGetPowerProfilePriceCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t powerProfileId);
/**
 * @brief  Cluster EnergyPhasesScheduleNotification Command callback (from client)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleNotificationCallback(
    chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t powerProfileId, uint8_t numOfScheduledPhases,
    /* TYPE WARNING: array array defaults to */ uint8_t * scheduledPhases);
/**
 * @brief  Cluster PowerProfilesStateNotification Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfilesStateNotificationCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t powerProfileCount,
    /* TYPE WARNING: array array defaults to */ uint8_t * powerProfileRecords);
/**
 * @brief  Cluster EnergyPhasesScheduleResponse Command callback (from client)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t powerProfileId, uint8_t numOfScheduledPhases,
    /* TYPE WARNING: array array defaults to */ uint8_t * scheduledPhases);
/**
 * @brief  Cluster GetOverallSchedulePrice Command callback (from server)
 */
bool emberAfPowerProfileClusterGetOverallSchedulePriceCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster PowerProfileScheduleConstraintsRequest Command callback (from client)
 */
bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsRequestCallback(chip::EndpointId endpoint,
                                                                              chip::app::CommandHandler * commandObj,
                                                                              uint8_t powerProfileId);
/**
 * @brief  Cluster EnergyPhasesScheduleRequest Command callback (from server)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleRequestCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                   uint8_t powerProfileId);
/**
 * @brief  Cluster EnergyPhasesScheduleStateRequest Command callback (from client)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleStateRequestCallback(chip::EndpointId endpoint,
                                                                        chip::app::CommandHandler * commandObj,
                                                                        uint8_t powerProfileId);
/**
 * @brief  Cluster EnergyPhasesScheduleStateResponse Command callback (from server)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleStateResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t powerProfileId, uint8_t numOfScheduledPhases,
    /* TYPE WARNING: array array defaults to */ uint8_t * scheduledPhases);
/**
 * @brief  Cluster GetPowerProfilePriceExtendedResponse Command callback (from client)
 */
bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedResponseCallback(chip::EndpointId endpoint,
                                                                            chip::app::CommandHandler * commandObj,
                                                                            uint8_t powerProfileId, uint16_t currency,
                                                                            uint32_t price, uint8_t priceTrailingDigit);
/**
 * @brief  Cluster EnergyPhasesScheduleStateNotification Command callback (from server)
 */
bool emberAfPowerProfileClusterEnergyPhasesScheduleStateNotificationCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t powerProfileId, uint8_t numOfScheduledPhases,
    /* TYPE WARNING: array array defaults to */ uint8_t * scheduledPhases);
/**
 * @brief  Cluster PowerProfileScheduleConstraintsNotification Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsNotificationCallback(chip::EndpointId endpoint,
                                                                                   chip::app::CommandSender * commandObj,
                                                                                   uint8_t powerProfileId, uint16_t startAfter,
                                                                                   uint16_t stopBefore);
/**
 * @brief  Cluster PowerProfileScheduleConstraintsResponse Command callback (from server)
 */
bool emberAfPowerProfileClusterPowerProfileScheduleConstraintsResponseCallback(chip::EndpointId endpoint,
                                                                               chip::app::CommandSender * commandObj,
                                                                               uint8_t powerProfileId, uint16_t startAfter,
                                                                               uint16_t stopBefore);
/**
 * @brief  Cluster GetPowerProfilePriceExtended Command callback (from server)
 */
bool emberAfPowerProfileClusterGetPowerProfilePriceExtendedCallback(chip::EndpointId endpoint,
                                                                    chip::app::CommandSender * commandObj, uint8_t options,
                                                                    uint8_t powerProfileId, uint16_t powerProfileStartTime);
/**
 * @brief  Cluster ExecutionOfACommand Command callback (from client)
 */
bool emberAfApplianceControlClusterExecutionOfACommandCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                               uint8_t commandId);
/**
 * @brief  Cluster SignalStateResponse Command callback (from server)
 */
bool emberAfApplianceControlClusterSignalStateResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               uint8_t applianceStatus, uint8_t remoteEnableFlagsAndDeviceStatus2,
                                                               uint32_t applianceStatus2);
/**
 * @brief  Cluster SignalState Command callback (from client)
 */
bool emberAfApplianceControlClusterSignalStateCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SignalStateNotification Command callback (from server)
 */
bool emberAfApplianceControlClusterSignalStateNotificationCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                   uint8_t applianceStatus,
                                                                   uint8_t remoteEnableFlagsAndDeviceStatus2,
                                                                   uint32_t applianceStatus2);
/**
 * @brief  Cluster WriteFunctions Command callback (from client)
 */
bool emberAfApplianceControlClusterWriteFunctionsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                          uint16_t functionId, uint8_t functionDataType,
                                                          /* TYPE WARNING: array array defaults to */ uint8_t * functionData);
/**
 * @brief  Cluster OverloadPauseResume Command callback (from client)
 */
bool emberAfApplianceControlClusterOverloadPauseResumeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster OverloadPause Command callback (from client)
 */
bool emberAfApplianceControlClusterOverloadPauseCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster OverloadWarning Command callback (from client)
 */
bool emberAfApplianceControlClusterOverloadWarningCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                           uint8_t warningEvent);
/**
 * @brief  Cluster CheckIn Command callback (from server)
 */
bool emberAfPollControlClusterCheckInCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster CheckInResponse Command callback (from client)
 */
bool emberAfPollControlClusterCheckInResponseCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      bool startFastPolling, uint16_t fastPollTimeout);
/**
 * @brief  Cluster FastPollStop Command callback (from client)
 */
bool emberAfPollControlClusterFastPollStopCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SetLongPollInterval Command callback (from client)
 */
bool emberAfPollControlClusterSetLongPollIntervalCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                          uint32_t newLongPollInterval);
/**
 * @brief  Cluster SetShortPollInterval Command callback (from client)
 */
bool emberAfPollControlClusterSetShortPollIntervalCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                           uint16_t newShortPollInterval);
/**
 * @brief  Cluster StartUp Command callback (from server)
 */
bool emberAfBasicClusterStartUpCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster MfgSpecificPing Command callback (from client)
 */
bool emberAfBasicClusterMfgSpecificPingCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ShutDown Command callback (from server)
 */
bool emberAfBasicClusterShutDownCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster Leave Command callback (from server)
 */
bool emberAfBasicClusterLeaveCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster QueryImage Command callback (from client)
 */
bool emberAfOtaSoftwareUpdateProviderClusterQueryImageCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                               uint16_t vendorId, uint16_t productId, uint16_t imageType,
                                                               uint16_t hardwareVersion, uint32_t currentVersion,
                                                               uint8_t protocolsSupported, uint8_t * location,
                                                               bool requestorCanConsent, chip::ByteSpan metadataForProvider);
/**
 * @brief  Cluster ApplyUpdateRequest Command callback (from client)
 */
bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateRequestCallback(chip::EndpointId endpoint,
                                                                       chip::app::CommandHandler * commandObj,
                                                                       chip::ByteSpan updateToken, uint32_t newVersion);
/**
 * @brief  Cluster NotifyUpdateApplied Command callback (from client)
 */
bool emberAfOtaSoftwareUpdateProviderClusterNotifyUpdateAppliedCallback(chip::EndpointId endpoint,
                                                                        chip::app::CommandHandler * commandObj,
                                                                        chip::ByteSpan updateToken, uint32_t currentVersion);
/**
 * @brief  Cluster QueryImageResponse Command callback (from server)
 */
bool emberAfOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(chip::EndpointId endpoint,
                                                                       chip::app::CommandSender * commandObj, uint8_t status,
                                                                       uint32_t delayedActionTime, uint8_t * imageURI,
                                                                       uint32_t softwareVersion, chip::ByteSpan updateToken,
                                                                       bool userConsentNeeded, chip::ByteSpan metadataForRequestor);
/**
 * @brief  Cluster ApplyUpdateRequestResponse Command callback (from server)
 */
bool emberAfOtaSoftwareUpdateProviderClusterApplyUpdateRequestResponseCallback(chip::EndpointId endpoint,
                                                                               chip::app::CommandSender * commandObj,
                                                                               uint8_t action, uint32_t delayedActionTime);
/**
 * @brief  Cluster AnnounceOtaProvider Command callback (from client)
 */
bool emberAfOtaSoftwareUpdateRequestorClusterAnnounceOtaProviderCallback(chip::EndpointId endpoint,
                                                                         chip::app::CommandHandler * commandObj,
                                                                         chip::ByteSpan serverLocation, uint16_t vendorId,
                                                                         uint8_t announcementReason,
                                                                         chip::ByteSpan metadataForNode);
/**
 * @brief  Cluster ArmFailSafe Command callback (from client)
 */
bool emberAfGeneralCommissioningClusterArmFailSafeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                           uint16_t expiryLengthSeconds, uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster ArmFailSafeResponse Command callback (from server)
 */
bool emberAfGeneralCommissioningClusterArmFailSafeResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                   uint8_t errorCode, uint8_t * debugText);
/**
 * @brief  Cluster SetRegulatoryConfig Command callback (from client)
 */
bool emberAfGeneralCommissioningClusterSetRegulatoryConfigCallback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj, uint8_t location,
                                                                   uint8_t * countryCode, uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster SetRegulatoryConfigResponse Command callback (from server)
 */
bool emberAfGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(chip::EndpointId endpoint,
                                                                           chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                           uint8_t * debugText);
/**
 * @brief  Cluster CommissioningComplete Command callback (from client)
 */
bool emberAfGeneralCommissioningClusterCommissioningCompleteCallback(chip::EndpointId endpoint,
                                                                     chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster CommissioningCompleteResponse Command callback (from server)
 */
bool emberAfGeneralCommissioningClusterCommissioningCompleteResponseCallback(chip::EndpointId endpoint,
                                                                             chip::app::CommandSender * commandObj,
                                                                             uint8_t errorCode, uint8_t * debugText);
/**
 * @brief  Cluster ScanNetworks Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterScanNetworksCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            chip::ByteSpan ssid, uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster ScanNetworksResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterScanNetworksResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t errorCode, uint8_t * debugText,
    /* TYPE WARNING: array array defaults to */ uint8_t * wifiScanResults,
    /* TYPE WARNING: array array defaults to */ uint8_t * threadScanResults);
/**
 * @brief  Cluster AddWiFiNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterAddWiFiNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              chip::ByteSpan ssid, chip::ByteSpan credentials, uint64_t breadcrumb,
                                                              uint32_t timeoutMs);
/**
 * @brief  Cluster AddWiFiNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterAddWiFiNetworkResponseCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                      uint8_t * debugText);
/**
 * @brief  Cluster UpdateWiFiNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterUpdateWiFiNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                                 chip::ByteSpan ssid, chip::ByteSpan credentials,
                                                                 uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster UpdateWiFiNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterUpdateWiFiNetworkResponseCallback(chip::EndpointId endpoint,
                                                                         chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                         uint8_t * debugText);
/**
 * @brief  Cluster AddThreadNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterAddThreadNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                                chip::ByteSpan operationalDataset, uint64_t breadcrumb,
                                                                uint32_t timeoutMs);
/**
 * @brief  Cluster AddThreadNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterAddThreadNetworkResponseCallback(chip::EndpointId endpoint,
                                                                        chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                        uint8_t * debugText);
/**
 * @brief  Cluster UpdateThreadNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterUpdateThreadNetworkCallback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj,
                                                                   chip::ByteSpan operationalDataset, uint64_t breadcrumb,
                                                                   uint32_t timeoutMs);
/**
 * @brief  Cluster UpdateThreadNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterUpdateThreadNetworkResponseCallback(chip::EndpointId endpoint,
                                                                           chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                           uint8_t * debugText);
/**
 * @brief  Cluster RemoveNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterRemoveNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                             chip::ByteSpan NetworkID, uint64_t Breadcrumb, uint32_t TimeoutMs);
/**
 * @brief  Cluster RemoveNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterRemoveNetworkResponseCallback(chip::EndpointId endpoint,
                                                                     chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                     uint8_t * debugText);
/**
 * @brief  Cluster EnableNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterEnableNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                             chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster EnableNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterEnableNetworkResponseCallback(chip::EndpointId endpoint,
                                                                     chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                     uint8_t * debugText);
/**
 * @brief  Cluster DisableNetwork Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterDisableNetworkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
/**
 * @brief  Cluster DisableNetworkResponse Command callback (from server)
 */
bool emberAfNetworkCommissioningClusterDisableNetworkResponseCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandSender * commandObj, uint8_t errorCode,
                                                                      uint8_t * debugText);
/**
 * @brief  Cluster GetLastNetworkCommissioningResult Command callback (from client)
 */
bool emberAfNetworkCommissioningClusterGetLastNetworkCommissioningResultCallback(chip::EndpointId endpoint,
                                                                                 chip::app::CommandHandler * commandObj,
                                                                                 uint32_t timeoutMs);
/**
 * @brief  Cluster RetrieveLogsRequest Command callback (from client)
 */
bool emberAfDiagnosticLogsClusterRetrieveLogsRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                             uint8_t intent, uint8_t requestedProtocol,
                                                             chip::ByteSpan transferFileDesignator);
/**
 * @brief  Cluster RetrieveLogsResponse Command callback (from server)
 */
bool emberAfDiagnosticLogsClusterRetrieveLogsResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t status, chip::ByteSpan content,
                                                              /* TYPE WARNING: utc defaults to */ uint8_t * timeStamp,
                                                              uint32_t timeSinceBoot);
/**
 * @brief  Cluster ResetWatermarks Command callback (from client)
 */
bool emberAfSoftwareDiagnosticsClusterResetWatermarksCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ResetCounts Command callback (from client)
 */
bool emberAfThreadNetworkDiagnosticsClusterResetCountsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ResetCounts Command callback (from client)
 */
bool emberAfWiFiNetworkDiagnosticsClusterResetCountsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ResetCounts Command callback (from client)
 */
bool emberAfEthernetNetworkDiagnosticsClusterResetCountsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster StartUp Command callback (from server)
 */
bool emberAfBridgedDeviceBasicClusterStartUpCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster ShutDown Command callback (from server)
 */
bool emberAfBridgedDeviceBasicClusterShutDownCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster Leave Command callback (from server)
 */
bool emberAfBridgedDeviceBasicClusterLeaveCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster ReachableChanged Command callback (from server)
 */
bool emberAfBridgedDeviceBasicClusterReachableChangedCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster OpenCommissioningWindow Command callback (from client)
 */
bool emberAfAdministratorCommissioningClusterOpenCommissioningWindowCallback(
    chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t CommissioningTimeout, chip::ByteSpan PAKEVerifier,
    uint16_t Discriminator, uint32_t Iterations, chip::ByteSpan Salt, uint16_t PasscodeID);
/**
 * @brief  Cluster OpenBasicCommissioningWindow Command callback (from client)
 */
bool emberAfAdministratorCommissioningClusterOpenBasicCommissioningWindowCallback(chip::EndpointId endpoint,
                                                                                  chip::app::CommandHandler * commandObj,
                                                                                  uint16_t CommissioningTimeout);
/**
 * @brief  Cluster RevokeCommissioning Command callback (from client)
 */
bool emberAfAdministratorCommissioningClusterRevokeCommissioningCallback(chip::EndpointId endpoint,
                                                                         chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SetFabric Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterSetFabricCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                           uint16_t VendorId);
/**
 * @brief  Cluster SetFabricResponse Command callback (from server)
 */
bool emberAfOperationalCredentialsClusterSetFabricResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                   chip::FabricId FabricId);
/**
 * @brief  Cluster OpCSRRequest Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterOpCSRRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              chip::ByteSpan CSRNonce);
/**
 * @brief  Cluster OpCSRResponse Command callback (from server)
 */
bool emberAfOperationalCredentialsClusterOpCSRResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               chip::ByteSpan NOCSRElements, chip::ByteSpan AttestationSignature);
/**
 * @brief  Cluster AddNOC Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterAddNOCCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        chip::ByteSpan NOCArray, chip::ByteSpan IPKValue,
                                                        chip::NodeId CaseAdminNode, uint16_t AdminVendorId);
/**
 * @brief  Cluster NOCResponse Command callback (from server)
 */
bool emberAfOperationalCredentialsClusterNOCResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                             uint8_t StatusCode, uint8_t FabricIndex, chip::ByteSpan DebugText);
/**
 * @brief  Cluster UpdateFabricLabel Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterUpdateFabricLabelCallback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj, uint8_t * Label);
/**
 * @brief  Cluster RemoveFabric Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterRemoveFabricCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              chip::FabricId FabricId, chip::NodeId NodeId, uint16_t VendorId);
/**
 * @brief  Cluster RemoveAllFabrics Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterRemoveAllFabricsCallback(chip::EndpointId endpoint,
                                                                  chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster AddTrustedRootCertificate Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterAddTrustedRootCertificateCallback(chip::EndpointId endpoint,
                                                                           chip::app::CommandHandler * commandObj,
                                                                           chip::ByteSpan RootCertificate);
/**
 * @brief  Cluster RemoveTrustedRootCertificate Command callback (from client)
 */
bool emberAfOperationalCredentialsClusterRemoveTrustedRootCertificateCallback(chip::EndpointId endpoint,
                                                                              chip::app::CommandHandler * commandObj,
                                                                              chip::ByteSpan TrustedRootIdentifier);
/**
 * @brief  Cluster LockDoor Command callback (from client)
 */
bool emberAfDoorLockClusterLockDoorCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t * PIN);
/**
 * @brief  Cluster LockDoorResponse Command callback (from server)
 */
bool emberAfDoorLockClusterLockDoorResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint8_t status);
/**
 * @brief  Cluster UnlockDoor Command callback (from client)
 */
bool emberAfDoorLockClusterUnlockDoorCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t * PIN);
/**
 * @brief  Cluster UnlockDoorResponse Command callback (from server)
 */
bool emberAfDoorLockClusterUnlockDoorResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                      uint8_t status);
/**
 * @brief  Cluster Toggle Command callback (from client)
 */
bool emberAfDoorLockClusterToggleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t * pin);
/**
 * @brief  Cluster ToggleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterToggleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status);
/**
 * @brief  Cluster UnlockWithTimeout Command callback (from client)
 */
bool emberAfDoorLockClusterUnlockWithTimeoutCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                     uint16_t timeoutInSeconds, uint8_t * pin);
/**
 * @brief  Cluster UnlockWithTimeoutResponse Command callback (from server)
 */
bool emberAfDoorLockClusterUnlockWithTimeoutResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                             uint8_t status);
/**
 * @brief  Cluster GetLogRecord Command callback (from client)
 */
bool emberAfDoorLockClusterGetLogRecordCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                uint16_t logIndex);
/**
 * @brief  Cluster GetLogRecordResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetLogRecordResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                        uint16_t logEntryId, uint32_t timestamp, uint8_t eventType, uint8_t source,
                                                        uint8_t eventIdOrAlarmCode, uint16_t userId, uint8_t * pin);
/**
 * @brief  Cluster SetPin Command callback (from client)
 */
bool emberAfDoorLockClusterSetPinCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId,
                                          uint8_t userStatus, uint8_t userType, uint8_t * pin);
/**
 * @brief  Cluster SetPinResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetPinResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t status);
/**
 * @brief  Cluster GetPin Command callback (from client)
 */
bool emberAfDoorLockClusterGetPinCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId);
/**
 * @brief  Cluster GetPinResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetPinResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint16_t userId,
                                                  uint8_t userStatus, uint8_t userType, uint8_t * pin);
/**
 * @brief  Cluster ClearPin Command callback (from client)
 */
bool emberAfDoorLockClusterClearPinCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId);
/**
 * @brief  Cluster ClearPinResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearPinResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint8_t status);
/**
 * @brief  Cluster ClearAllPins Command callback (from client)
 */
bool emberAfDoorLockClusterClearAllPinsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ClearAllPinsResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearAllPinsResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                        uint8_t status);
/**
 * @brief  Cluster SetUserStatus Command callback (from client)
 */
bool emberAfDoorLockClusterSetUserStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId,
                                                 uint8_t userStatus);
/**
 * @brief  Cluster SetUserStatusResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetUserStatusResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                         uint8_t status);
/**
 * @brief  Cluster GetUserStatus Command callback (from client)
 */
bool emberAfDoorLockClusterGetUserStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                 uint16_t userId);
/**
 * @brief  Cluster GetUserStatusResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetUserStatusResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                         uint16_t userId, uint8_t status);
/**
 * @brief  Cluster SetWeekdaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterSetWeekdayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour,
                                                      uint8_t startMinute, uint8_t endHour, uint8_t endMinute);
/**
 * @brief  Cluster SetWeekdayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetWeekdayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t status);
/**
 * @brief  Cluster GetWeekdaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterGetWeekdayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId, uint16_t userId);
/**
 * @brief  Cluster GetWeekdayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetWeekdayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t scheduleId, uint16_t userId, uint8_t status, uint8_t daysMask,
                                                              uint8_t startHour, uint8_t startMinute, uint8_t endHour,
                                                              uint8_t endMinute);
/**
 * @brief  Cluster ClearWeekdaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterClearWeekdayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t scheduleId, uint16_t userId);
/**
 * @brief  Cluster ClearWeekdayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearWeekdayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t status);
/**
 * @brief  Cluster SetYeardaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterSetYeardayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId, uint16_t userId, uint32_t localStartTime,
                                                      uint32_t localEndTime);
/**
 * @brief  Cluster SetYeardayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetYeardayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t status);
/**
 * @brief  Cluster GetYeardaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterGetYeardayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId, uint16_t userId);
/**
 * @brief  Cluster GetYeardayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetYeardayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t scheduleId, uint16_t userId, uint8_t status,
                                                              uint32_t localStartTime, uint32_t localEndTime);
/**
 * @brief  Cluster ClearYeardaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterClearYeardayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t scheduleId, uint16_t userId);
/**
 * @brief  Cluster ClearYeardayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearYeardayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t status);
/**
 * @brief  Cluster SetHolidaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterSetHolidayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime,
                                                      uint8_t operatingModeDuringHoliday);
/**
 * @brief  Cluster SetHolidayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetHolidayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t status);
/**
 * @brief  Cluster GetHolidaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterGetHolidayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t scheduleId);
/**
 * @brief  Cluster GetHolidayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetHolidayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t scheduleId, uint8_t status, uint32_t localStartTime,
                                                              uint32_t localEndTime, uint8_t operatingModeDuringHoliday);
/**
 * @brief  Cluster ClearHolidaySchedule Command callback (from client)
 */
bool emberAfDoorLockClusterClearHolidayScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t scheduleId);
/**
 * @brief  Cluster ClearHolidayScheduleResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearHolidayScheduleResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t status);
/**
 * @brief  Cluster SetUserType Command callback (from client)
 */
bool emberAfDoorLockClusterSetUserTypeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId,
                                               uint8_t userType);
/**
 * @brief  Cluster SetUserTypeResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetUserTypeResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                       uint8_t status);
/**
 * @brief  Cluster GetUserType Command callback (from client)
 */
bool emberAfDoorLockClusterGetUserTypeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId);
/**
 * @brief  Cluster GetUserTypeResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetUserTypeResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                       uint16_t userId, uint8_t userType);
/**
 * @brief  Cluster SetRfid Command callback (from client)
 */
bool emberAfDoorLockClusterSetRfidCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId,
                                           uint8_t userStatus, uint8_t userType, uint8_t * id);
/**
 * @brief  Cluster SetRfidResponse Command callback (from server)
 */
bool emberAfDoorLockClusterSetRfidResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                   uint8_t status);
/**
 * @brief  Cluster GetRfid Command callback (from client)
 */
bool emberAfDoorLockClusterGetRfidCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId);
/**
 * @brief  Cluster GetRfidResponse Command callback (from server)
 */
bool emberAfDoorLockClusterGetRfidResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                   uint16_t userId, uint8_t userStatus, uint8_t userType, uint8_t * rfid);
/**
 * @brief  Cluster ClearRfid Command callback (from client)
 */
bool emberAfDoorLockClusterClearRfidCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t userId);
/**
 * @brief  Cluster ClearRfidResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearRfidResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                     uint8_t status);
/**
 * @brief  Cluster ClearAllRfids Command callback (from client)
 */
bool emberAfDoorLockClusterClearAllRfidsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ClearAllRfidsResponse Command callback (from server)
 */
bool emberAfDoorLockClusterClearAllRfidsResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                         uint8_t status);
/**
 * @brief  Cluster OperationEventNotification Command callback (from server)
 */
bool emberAfDoorLockClusterOperationEventNotificationCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin,
                                                              uint32_t timeStamp, uint8_t * data);
/**
 * @brief  Cluster ProgrammingEventNotification Command callback (from server)
 */
bool emberAfDoorLockClusterProgrammingEventNotificationCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t source, uint8_t eventCode, uint16_t userId, uint8_t * pin,
                                                                uint8_t userType, uint8_t userStatus, uint32_t timeStamp,
                                                                uint8_t * data);
/**
 * @brief  Cluster UpOrOpen Command callback (from client)
 */
bool emberAfWindowCoveringClusterUpOrOpenCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster DownOrClose Command callback (from client)
 */
bool emberAfWindowCoveringClusterDownOrCloseCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster StopMotion Command callback (from client)
 */
bool emberAfWindowCoveringClusterStopMotionCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GoToLiftValue Command callback (from client)
 */
bool emberAfWindowCoveringClusterGoToLiftValueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint16_t liftValue);
/**
 * @brief  Cluster GoToLiftPercentage Command callback (from client)
 */
bool emberAfWindowCoveringClusterGoToLiftPercentageCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            uint8_t liftPercentageValue, uint16_t liftPercent100thsValue);
/**
 * @brief  Cluster GoToTiltValue Command callback (from client)
 */
bool emberAfWindowCoveringClusterGoToTiltValueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint16_t tiltValue);
/**
 * @brief  Cluster GoToTiltPercentage Command callback (from client)
 */
bool emberAfWindowCoveringClusterGoToTiltPercentageCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            uint8_t tiltPercentageValue, uint16_t tiltPercent100thsValue);
/**
 * @brief  Cluster BarrierControlGoToPercent Command callback (from client)
 */
bool emberAfBarrierControlClusterBarrierControlGoToPercentCallback(chip::EndpointId endpoint,
                                                                   chip::app::CommandHandler * commandObj, uint8_t percentOpen);
/**
 * @brief  Cluster BarrierControlStop Command callback (from client)
 */
bool emberAfBarrierControlClusterBarrierControlStopCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SetpointRaiseLower Command callback (from client)
 */
bool emberAfThermostatClusterSetpointRaiseLowerCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t mode, int8_t amount);
/**
 * @brief  Cluster CurrentWeeklySchedule Command callback (from server)
 */
bool emberAfThermostatClusterCurrentWeeklyScheduleCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                           uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence,
                                                           uint8_t modeForSequence,
                                                           /* TYPE WARNING: array array defaults to */ uint8_t * payload);
/**
 * @brief  Cluster SetWeeklySchedule Command callback (from client)
 */
bool emberAfThermostatClusterSetWeeklyScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint8_t numberOfTransitionsForSequence, uint8_t dayOfWeekForSequence,
                                                       uint8_t modeForSequence,
                                                       /* TYPE WARNING: array array defaults to */ uint8_t * payload);
/**
 * @brief  Cluster RelayStatusLog Command callback (from server)
 */
bool emberAfThermostatClusterRelayStatusLogCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint16_t timeOfDay, uint16_t relayStatus, int16_t localTemperature,
                                                    uint8_t humidityInPercentage, int16_t setpoint, uint16_t unreadEntries);
/**
 * @brief  Cluster GetWeeklySchedule Command callback (from client)
 */
bool emberAfThermostatClusterGetWeeklyScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint8_t daysToReturn, uint8_t modeToReturn);
/**
 * @brief  Cluster ClearWeeklySchedule Command callback (from client)
 */
bool emberAfThermostatClusterClearWeeklyScheduleCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetRelayStatusLog Command callback (from client)
 */
bool emberAfThermostatClusterGetRelayStatusLogCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MoveToHue Command callback (from client)
 */
bool emberAfColorControlClusterMoveToHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t hue,
                                                 uint8_t direction, uint16_t transitionTime, uint8_t optionsMask,
                                                 uint8_t optionsOverride);
/**
 * @brief  Cluster MoveHue Command callback (from client)
 */
bool emberAfColorControlClusterMoveHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t moveMode,
                                               uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster StepHue Command callback (from client)
 */
bool emberAfColorControlClusterStepHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t stepMode,
                                               uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask,
                                               uint8_t optionsOverride);
/**
 * @brief  Cluster MoveToSaturation Command callback (from client)
 */
bool emberAfColorControlClusterMoveToSaturationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask,
                                                        uint8_t optionsOverride);
/**
 * @brief  Cluster MoveSaturation Command callback (from client)
 */
bool emberAfColorControlClusterMoveSaturationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t moveMode, uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster StepSaturation Command callback (from client)
 */
bool emberAfColorControlClusterStepSaturationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                      uint8_t stepMode, uint8_t stepSize, uint8_t transitionTime,
                                                      uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster MoveToHueAndSaturation Command callback (from client)
 */
bool emberAfColorControlClusterMoveToHueAndSaturationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              uint8_t hue, uint8_t saturation, uint16_t transitionTime,
                                                              uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster MoveToColor Command callback (from client)
 */
bool emberAfColorControlClusterMoveToColorCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                   uint16_t colorX, uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask,
                                                   uint8_t optionsOverride);
/**
 * @brief  Cluster MoveColor Command callback (from client)
 */
bool emberAfColorControlClusterMoveColorCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, int16_t rateX,
                                                 int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster StepColor Command callback (from client)
 */
bool emberAfColorControlClusterStepColorCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, int16_t stepX,
                                                 int16_t stepY, uint16_t transitionTime, uint8_t optionsMask,
                                                 uint8_t optionsOverride);
/**
 * @brief  Cluster MoveToColorTemperature Command callback (from client)
 */
bool emberAfColorControlClusterMoveToColorTemperatureCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              uint16_t colorTemperature, uint16_t transitionTime,
                                                              uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster EnhancedMoveToHue Command callback (from client)
 */
bool emberAfColorControlClusterEnhancedMoveToHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                         uint16_t enhancedHue, uint8_t direction, uint16_t transitionTime,
                                                         uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster EnhancedMoveHue Command callback (from client)
 */
bool emberAfColorControlClusterEnhancedMoveHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint8_t moveMode, uint16_t rate, uint8_t optionsMask,
                                                       uint8_t optionsOverride);
/**
 * @brief  Cluster EnhancedStepHue Command callback (from client)
 */
bool emberAfColorControlClusterEnhancedStepHueCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime,
                                                       uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster EnhancedMoveToHueAndSaturation Command callback (from client)
 */
bool emberAfColorControlClusterEnhancedMoveToHueAndSaturationCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandHandler * commandObj, uint16_t enhancedHue,
                                                                      uint8_t saturation, uint16_t transitionTime,
                                                                      uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster ColorLoopSet Command callback (from client)
 */
bool emberAfColorControlClusterColorLoopSetCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint8_t updateFlags, uint8_t action, uint8_t direction, uint16_t time,
                                                    uint16_t startHue, uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster StopMoveStep Command callback (from client)
 */
bool emberAfColorControlClusterStopMoveStepCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster MoveColorTemperature Command callback (from client)
 */
bool emberAfColorControlClusterMoveColorTemperatureCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum,
                                                            uint16_t colorTemperatureMaximum, uint8_t optionsMask,
                                                            uint8_t optionsOverride);
/**
 * @brief  Cluster StepColorTemperature Command callback (from client)
 */
bool emberAfColorControlClusterStepColorTemperatureCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                            uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime,
                                                            uint16_t colorTemperatureMinimum, uint16_t colorTemperatureMaximum,
                                                            uint8_t optionsMask, uint8_t optionsOverride);
/**
 * @brief  Cluster ZoneEnrollResponse Command callback (from client)
 */
bool emberAfIasZoneClusterZoneEnrollResponseCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                     uint8_t enrollResponseCode, uint8_t zoneId);
/**
 * @brief  Cluster ZoneStatusChangeNotification Command callback (from server)
 */
bool emberAfIasZoneClusterZoneStatusChangeNotificationCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               uint16_t zoneStatus, uint8_t extendedStatus, uint8_t zoneId,
                                                               uint16_t delay);
/**
 * @brief  Cluster InitiateNormalOperationMode Command callback (from client)
 */
bool emberAfIasZoneClusterInitiateNormalOperationModeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ZoneEnrollRequest Command callback (from server)
 */
bool emberAfIasZoneClusterZoneEnrollRequestCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint16_t zoneType, uint16_t manufacturerCode);
/**
 * @brief  Cluster InitiateTestMode Command callback (from client)
 */
bool emberAfIasZoneClusterInitiateTestModeCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                   uint8_t testModeDuration, uint8_t currentZoneSensitivityLevel);
/**
 * @brief  Cluster InitiateNormalOperationModeResponse Command callback (from server)
 */
bool emberAfIasZoneClusterInitiateNormalOperationModeResponseCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster InitiateTestModeResponse Command callback (from server)
 */
bool emberAfIasZoneClusterInitiateTestModeResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj);
/**
 * @brief  Cluster Arm Command callback (from client)
 */
bool emberAfIasAceClusterArmCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t armMode,
                                     uint8_t * armDisarmCode, uint8_t zoneId);
/**
 * @brief  Cluster ArmResponse Command callback (from server)
 */
bool emberAfIasAceClusterArmResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                             uint8_t armNotification);
/**
 * @brief  Cluster Bypass Command callback (from client)
 */
bool emberAfIasAceClusterBypassCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t numberOfZones,
                                        /* TYPE WARNING: array array defaults to */ uint8_t * zoneIds, uint8_t * armDisarmCode);
/**
 * @brief  Cluster GetZoneIdMapResponse Command callback (from server)
 */
bool emberAfIasAceClusterGetZoneIdMapResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                      uint16_t section0, uint16_t section1, uint16_t section2, uint16_t section3,
                                                      uint16_t section4, uint16_t section5, uint16_t section6, uint16_t section7,
                                                      uint16_t section8, uint16_t section9, uint16_t section10, uint16_t section11,
                                                      uint16_t section12, uint16_t section13, uint16_t section14,
                                                      uint16_t section15);
/**
 * @brief  Cluster Emergency Command callback (from client)
 */
bool emberAfIasAceClusterEmergencyCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetZoneInformationResponse Command callback (from server)
 */
bool emberAfIasAceClusterGetZoneInformationResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t zoneId, uint16_t zoneType, chip::NodeId ieeeAddress,
                                                            uint8_t * zoneLabel);
/**
 * @brief  Cluster Fire Command callback (from client)
 */
bool emberAfIasAceClusterFireCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster ZoneStatusChanged Command callback (from server)
 */
bool emberAfIasAceClusterZoneStatusChangedCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t zoneId,
                                                   uint16_t zoneStatus, uint8_t audibleNotification, uint8_t * zoneLabel);
/**
 * @brief  Cluster Panic Command callback (from client)
 */
bool emberAfIasAceClusterPanicCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster PanelStatusChanged Command callback (from server)
 */
bool emberAfIasAceClusterPanelStatusChangedCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                    uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification,
                                                    uint8_t alarmStatus);
/**
 * @brief  Cluster GetZoneIdMap Command callback (from client)
 */
bool emberAfIasAceClusterGetZoneIdMapCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetPanelStatusResponse Command callback (from server)
 */
bool emberAfIasAceClusterGetPanelStatusResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                        uint8_t panelStatus, uint8_t secondsRemaining, uint8_t audibleNotification,
                                                        uint8_t alarmStatus);
/**
 * @brief  Cluster GetZoneInformation Command callback (from client)
 */
bool emberAfIasAceClusterGetZoneInformationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint8_t zoneId);
/**
 * @brief  Cluster SetBypassedZoneList Command callback (from server)
 */
bool emberAfIasAceClusterSetBypassedZoneListCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                     uint8_t numberOfZones,
                                                     /* TYPE WARNING: array array defaults to */ uint8_t * zoneIds);
/**
 * @brief  Cluster GetPanelStatus Command callback (from client)
 */
bool emberAfIasAceClusterGetPanelStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster BypassResponse Command callback (from server)
 */
bool emberAfIasAceClusterBypassResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                uint8_t numberOfZones,
                                                /* TYPE WARNING: array array defaults to */ uint8_t * bypassResult);
/**
 * @brief  Cluster GetBypassedZoneList Command callback (from client)
 */
bool emberAfIasAceClusterGetBypassedZoneListCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetZoneStatusResponse Command callback (from server)
 */
bool emberAfIasAceClusterGetZoneStatusResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                       bool zoneStatusComplete, uint8_t numberOfZones,
                                                       /* TYPE WARNING: array array defaults to */ uint8_t * zoneStatusResult);
/**
 * @brief  Cluster GetZoneStatus Command callback (from client)
 */
bool emberAfIasAceClusterGetZoneStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                               uint8_t startingZoneId, uint8_t maxNumberOfZoneIds, bool zoneStatusMaskFlag,
                                               uint16_t zoneStatusMask);
/**
 * @brief  Cluster StartWarning Command callback (from client)
 */
bool emberAfIasWdClusterStartWarningCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t warningInfo,
                                             uint16_t warningDuration, uint8_t strobeDutyCycle, uint8_t strobeLevel);
/**
 * @brief  Cluster Squawk Command callback (from client)
 */
bool emberAfIasWdClusterSquawkCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t squawkInfo);
/**
 * @brief  Cluster ChangeChannel Command callback (from client)
 */
bool emberAfTvChannelClusterChangeChannelCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                  uint8_t * match);
/**
 * @brief  Cluster ChangeChannelResponse Command callback (from server)
 */
bool emberAfTvChannelClusterChangeChannelResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          /* TYPE WARNING: array array defaults to */ uint8_t * ChannelMatch,
                                                          uint8_t ErrorType);
/**
 * @brief  Cluster ChangeChannelByNumber Command callback (from client)
 */
bool emberAfTvChannelClusterChangeChannelByNumberCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                          uint16_t majorNumber, uint16_t minorNumber);
/**
 * @brief  Cluster SkipChannel Command callback (from client)
 */
bool emberAfTvChannelClusterSkipChannelCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint16_t Count);
/**
 * @brief  Cluster NavigateTarget Command callback (from client)
 */
bool emberAfTargetNavigatorClusterNavigateTargetCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                         uint8_t target, uint8_t * data);
/**
 * @brief  Cluster NavigateTargetResponse Command callback (from server)
 */
bool emberAfTargetNavigatorClusterNavigateTargetResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                 uint8_t status, uint8_t * data);
/**
 * @brief  Cluster MediaPlay Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaPlayCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaPlayResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaPlayResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaPause Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaPauseCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaPauseResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaPauseResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                           uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaStop Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaStopCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaStopResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaStopResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaStartOver Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaStartOverCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaStartOverResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaStartOverResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaPrevious Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaPreviousCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaPreviousResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaPreviousResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaNext Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaNextCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaNextResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaNextResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaRewind Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaRewindCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaRewindResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaRewindResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaFastForward Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaFastForwardCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster MediaFastForwardResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaFastForwardResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                 uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaSkipForward Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaSkipForwardCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                         uint64_t deltaPositionMilliseconds);
/**
 * @brief  Cluster MediaSkipForwardResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaSkipForwardResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                 uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaSkipBackward Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaSkipBackwardCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                          uint64_t deltaPositionMilliseconds);
/**
 * @brief  Cluster MediaSkipBackwardResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaSkipBackwardResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                  uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster MediaSeek Command callback (from client)
 */
bool emberAfMediaPlaybackClusterMediaSeekCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                  uint64_t position);
/**
 * @brief  Cluster MediaSeekResponse Command callback (from server)
 */
bool emberAfMediaPlaybackClusterMediaSeekResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          uint8_t mediaPlaybackStatus);
/**
 * @brief  Cluster SelectInput Command callback (from client)
 */
bool emberAfMediaInputClusterSelectInputCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t index);
/**
 * @brief  Cluster ShowInputStatus Command callback (from client)
 */
bool emberAfMediaInputClusterShowInputStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster HideInputStatus Command callback (from client)
 */
bool emberAfMediaInputClusterHideInputStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster RenameInput Command callback (from client)
 */
bool emberAfMediaInputClusterRenameInputCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t index,
                                                 uint8_t * name);
/**
 * @brief  Cluster Sleep Command callback (from client)
 */
bool emberAfLowPowerClusterSleepCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster SendKey Command callback (from client)
 */
bool emberAfKeypadInputClusterSendKeyCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t keyCode);
/**
 * @brief  Cluster SendKeyResponse Command callback (from server)
 */
bool emberAfKeypadInputClusterSendKeyResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                      uint8_t status);
/**
 * @brief  Cluster LaunchContent Command callback (from client)
 */
bool emberAfContentLauncherClusterLaunchContentCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        bool autoPlay, uint8_t * data);
/**
 * @brief  Cluster LaunchContentResponse Command callback (from server)
 */
bool emberAfContentLauncherClusterLaunchContentResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t * data, uint8_t contentLaunchStatus);
/**
 * @brief  Cluster LaunchURL Command callback (from client)
 */
bool emberAfContentLauncherClusterLaunchURLCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                    uint8_t * contentURL, uint8_t * displayString);
/**
 * @brief  Cluster LaunchURLResponse Command callback (from server)
 */
bool emberAfContentLauncherClusterLaunchURLResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint8_t * data, uint8_t contentLaunchStatus);
/**
 * @brief  Cluster SelectOutput Command callback (from client)
 */
bool emberAfAudioOutputClusterSelectOutputCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                   uint8_t index);
/**
 * @brief  Cluster RenameOutput Command callback (from client)
 */
bool emberAfAudioOutputClusterRenameOutputCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, uint8_t index,
                                                   uint8_t * name);
/**
 * @brief  Cluster LaunchApp Command callback (from client)
 */
bool emberAfApplicationLauncherClusterLaunchAppCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t * data, uint16_t catalogVendorId, uint8_t * applicationId);
/**
 * @brief  Cluster LaunchAppResponse Command callback (from server)
 */
bool emberAfApplicationLauncherClusterLaunchAppResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                uint8_t status, uint8_t * data);
/**
 * @brief  Cluster ChangeStatus Command callback (from client)
 */
bool emberAfApplicationBasicClusterChangeStatusCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint8_t status);
/**
 * @brief  Cluster GetSetupPIN Command callback (from client)
 */
bool emberAfAccountLoginClusterGetSetupPINCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                   uint8_t * tempAccountIdentifier);
/**
 * @brief  Cluster GetSetupPINResponse Command callback (from server)
 */
bool emberAfAccountLoginClusterGetSetupPINResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                           uint8_t * setupPIN);
/**
 * @brief  Cluster Login Command callback (from client)
 */
bool emberAfAccountLoginClusterLoginCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                             uint8_t * tempAccountIdentifier, uint8_t * setupPIN);
/**
 * @brief  Cluster Test Command callback (from client)
 */
bool emberAfTestClusterClusterTestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster TestSpecificResponse Command callback (from server)
 */
bool emberAfTestClusterClusterTestSpecificResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                           uint8_t returnValue);
/**
 * @brief  Cluster TestNotHandled Command callback (from client)
 */
bool emberAfTestClusterClusterTestNotHandledCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster TestAddArgumentsResponse Command callback (from server)
 */
bool emberAfTestClusterClusterTestAddArgumentsResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               uint8_t returnValue);
/**
 * @brief  Cluster TestSpecific Command callback (from client)
 */
bool emberAfTestClusterClusterTestSpecificCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster TestUnknownCommand Command callback (from client)
 */
bool emberAfTestClusterClusterTestUnknownCommandCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster TestAddArguments Command callback (from client)
 */
bool emberAfTestClusterClusterTestAddArgumentsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                       uint8_t arg1, uint8_t arg2);
/**
 * @brief  Cluster DisplayMessage Command callback (from server)
 */
bool emberAfMessagingClusterDisplayMessageCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                   uint32_t messageId, uint8_t messageControl,
                                                   /* TYPE WARNING: utc defaults to */ uint8_t * startTime,
                                                   uint16_t durationInMinutes, uint8_t * message,
                                                   uint8_t optionalExtendedMessageControl);
/**
 * @brief  Cluster GetLastMessage Command callback (from client)
 */
bool emberAfMessagingClusterGetLastMessageCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster CancelMessage Command callback (from server)
 */
bool emberAfMessagingClusterCancelMessageCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                  uint32_t messageId, uint8_t messageControl);
/**
 * @brief  Cluster MessageConfirmation Command callback (from client)
 */
bool emberAfMessagingClusterMessageConfirmationCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                        uint32_t messageId,
                                                        /* TYPE WARNING: utc defaults to */ uint8_t * confirmationTime,
                                                        uint8_t messageConfirmationControl, chip::ByteSpan messageResponse);
/**
 * @brief  Cluster DisplayProtectedMessage Command callback (from server)
 */
bool emberAfMessagingClusterDisplayProtectedMessageCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                            uint32_t messageId, uint8_t messageControl,
                                                            /* TYPE WARNING: utc defaults to */ uint8_t * startTime,
                                                            uint16_t durationInMinutes, uint8_t * message,
                                                            uint8_t optionalExtendedMessageControl);
/**
 * @brief  Cluster GetMessageCancellation Command callback (from client)
 */
bool emberAfMessagingClusterGetMessageCancellationCallback(
    chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
    /* TYPE WARNING: utc defaults to */ uint8_t * earliestImplementationTime);
/**
 * @brief  Cluster CancelAllMessages Command callback (from server)
 */
bool emberAfMessagingClusterCancelAllMessagesCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                      /* TYPE WARNING: utc defaults to */ uint8_t * implementationDateTime);
/**
 * @brief  Cluster GetAlerts Command callback (from client)
 */
bool emberAfApplianceEventsAndAlertClusterGetAlertsCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetAlertsResponse Command callback (from server)
 */
bool emberAfApplianceEventsAndAlertClusterGetAlertsResponseCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t alertsCount,
    /* TYPE WARNING: array array defaults to */ uint8_t * alertStructures);
/**
 * @brief  Cluster AlertsNotification Command callback (from server)
 */
bool emberAfApplianceEventsAndAlertClusterAlertsNotificationCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t alertsCount,
    /* TYPE WARNING: array array defaults to */ uint8_t * alertStructures);
/**
 * @brief  Cluster EventsNotification Command callback (from server)
 */
bool emberAfApplianceEventsAndAlertClusterEventsNotificationCallback(chip::EndpointId endpoint,
                                                                     chip::app::CommandSender * commandObj, uint8_t eventHeader,
                                                                     uint8_t eventId);
/**
 * @brief  Cluster LogNotification Command callback (from server)
 */
bool emberAfApplianceStatisticsClusterLogNotificationCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                              /* TYPE WARNING: unknown defaults to */ uint8_t * timeStamp,
                                                              uint32_t logId, uint32_t logLength,
                                                              /* TYPE WARNING: array array defaults to */ uint8_t * logPayload);
/**
 * @brief  Cluster LogRequest Command callback (from client)
 */
bool emberAfApplianceStatisticsClusterLogRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                         uint32_t logId);
/**
 * @brief  Cluster LogResponse Command callback (from server)
 */
bool emberAfApplianceStatisticsClusterLogResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                          /* TYPE WARNING: unknown defaults to */ uint8_t * timeStamp,
                                                          uint32_t logId, uint32_t logLength,
                                                          /* TYPE WARNING: array array defaults to */ uint8_t * logPayload);
/**
 * @brief  Cluster LogQueueRequest Command callback (from client)
 */
bool emberAfApplianceStatisticsClusterLogQueueRequestCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster LogQueueResponse Command callback (from server)
 */
bool emberAfApplianceStatisticsClusterLogQueueResponseCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                               uint8_t logQueueSize,
                                                               /* TYPE WARNING: array array defaults to */ uint8_t * logIds);
/**
 * @brief  Cluster StatisticsAvailable Command callback (from server)
 */
bool emberAfApplianceStatisticsClusterStatisticsAvailableCallback(chip::EndpointId endpoint, chip::app::CommandSender * commandObj,
                                                                  uint8_t logQueueSize,
                                                                  /* TYPE WARNING: array array defaults to */ uint8_t * logIds);
/**
 * @brief  Cluster GetProfileInfoResponseCommand Command callback (from server)
 */
bool emberAfElectricalMeasurementClusterGetProfileInfoResponseCommandCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint8_t profileCount, uint8_t profileIntervalPeriod,
    uint8_t maxNumberOfIntervals, /* TYPE WARNING: array array defaults to */ uint8_t * listOfAttributes);
/**
 * @brief  Cluster GetProfileInfoCommand Command callback (from client)
 */
bool emberAfElectricalMeasurementClusterGetProfileInfoCommandCallback(chip::EndpointId endpoint,
                                                                      chip::app::CommandHandler * commandObj);
/**
 * @brief  Cluster GetMeasurementProfileResponseCommand Command callback (from server)
 */
bool emberAfElectricalMeasurementClusterGetMeasurementProfileResponseCommandCallback(
    chip::EndpointId endpoint, chip::app::CommandSender * commandObj, uint32_t startTime, uint8_t status,
    uint8_t profileIntervalPeriod, uint8_t numberOfIntervalsDelivered, uint16_t attributeId,
    /* TYPE WARNING: array array defaults to */ uint8_t * intervals);
/**
 * @brief  Cluster GetMeasurementProfileCommand Command callback (from client)
 */
bool emberAfElectricalMeasurementClusterGetMeasurementProfileCommandCallback(chip::EndpointId endpoint,
                                                                             chip::app::CommandHandler * commandObj,
                                                                             uint16_t attributeId, uint32_t startTime,
                                                                             uint8_t numberOfIntervals);
/**
 * @brief  Cluster Bind Command callback (from client)
 */
bool emberAfBindingClusterBindCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, chip::NodeId nodeId,
                                       chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId);
/**
 * @brief  Cluster Unbind Command callback (from client)
 */
bool emberAfBindingClusterUnbindCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj, chip::NodeId nodeId,
                                         chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId);
/**
 * @brief  Cluster CommandOne Command callback (from client)
 */
bool emberAfSampleMfgSpecificClusterClusterCommandOneCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                              uint8_t argOne);
/**
 * @brief  Cluster CommandTwo Command callback (from client)
 */
bool emberAfSampleMfgSpecificCluster2ClusterCommandTwoCallback(chip::EndpointId endpoint, chip::app::CommandHandler * commandObj,
                                                               uint8_t argOne);

/** @brief Add To Current App Tasks
 *
 * This function is only useful to sleepy end devices.  This function will note
 * the passed item as part of a set of tasks the application has outstanding
 * (e.g. message sent requiring APS acknwoledgement).  This will affect how the
 * application behaves with regard to sleeping and polling.  Until the
 * outstanding task is completed, the device may poll more frequently and sleep
 * less often.
 *
 * @param tasks   Ver.: always
 */
void emberAfAddToCurrentAppTasksCallback(EmberAfApplicationTask tasks);

/** @brief Remove From Current App Tasks
 *
 * This function is only useful to sleepy end devices.  This function will
 * remove the passed item from the set of tasks the application has outstanding
 * (e.g. message sent requiring APS acknwoledgement).  This will affect how the
 * application behaves with regard to sleeping and polling.  Removing the item
 * from the list of outstanding tasks may allow the device to sleep longer and
 * poll less frequently.  If there are other outstanding tasks the system may
 * still have to stay away and poll more often.
 *
 * @param tasks   Ver.: always
 */
void emberAfRemoveFromCurrentAppTasksCallback(EmberAfApplicationTask tasks);

/** @brief Allow Network Write Attribute
 *
 * This function is called by the application framework before it writes an
 * attribute in response to a write attribute request from an external device.
 * The value passed into this callback is the value to which the attribute is to
 * be set by the framework.
        Example:	In mirroring simple metering data
 * on an Energy Services Interface (ESI) (formerly called Energy Service Portal
 * (ESP) in SE 1.0).), a mirrored simple meter needs to write read-only
 * attributes on its mirror. The-meter-mirror sample application, located in
 * app/framework/sample-apps, uses this callback to allow the mirrored device to
 * write simple metering attributes on the mirror regardless of the fact that
 * most simple metering attributes are defined as read-only by the ZigBee
 * specification.
        Note:	The ZCL specification does not (as of this
 * writing) specify any permission-level security for writing writeable
 * attributes. As far as the ZCL specification is concerned, if an attribute is
 * writeable, any device that has a link key for the device should be able to
 * write that attribute. Furthermore if an attribute is read only, it should not
 * be written over the air. Thus, if you implement permissions for writing
 * attributes as a feature, you MAY be operating outside the specification. This
 * is unlikely to be a problem for writing read-only attributes, but it may be a
 * problem for attributes that are writeable according to the specification but
 * restricted by the application implementing this callback.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param attributeId   Ver.: always
 * @param mask   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param value   Ver.: always
 * @param type   Ver.: always
 */
EmberAfAttributeWritePermission emberAfAllowNetworkWriteAttributeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
                                                                          chip::AttributeId attributeId, uint8_t mask,
                                                                          uint16_t manufacturerCode, uint8_t * value, uint8_t type);

/** @brief Attribute Read Access
 *
 * This function is called whenever the Application Framework needs to check
 * access permission for an attribute read.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param attributeId   Ver.: always
 */
bool emberAfAttributeReadAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
                                        chip::AttributeId attributeId);

/** @brief Attribute Write Access
 *
 * This function is called whenever the Application Framework needs to check
 * access permission for an attribute write.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param attributeId   Ver.: always
 */
bool emberAfAttributeWriteAccessCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, uint16_t manufacturerCode,
                                         chip::AttributeId attributeId);

/** @brief Default Response
 *
 * This function is called by the application framework when a Default Response
 * command is received from an external device.  The application should return
 * true if the message was processed or false if it was not.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param commandId The command identifier to which this is a response.  Ver.:
 * always
 * @param status Specifies either SUCCESS or the nature of the error that was
 * detected in the received command.  Ver.: always
 */
bool emberAfDefaultResponseCallback(chip::ClusterId clusterId, chip::CommandId commandId, EmberAfStatus status);

/** @brief Configure Reporting Response
 *
 * This function is called by the application framework when a Configure
 * Reporting Response command is received from an external device.  The
 * application should return true if the message was processed or false if it
 * was not.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param buffer Buffer containing the list of attribute status records.  Ver.:
 * always
 * @param bufLen The length in bytes of the list.  Ver.: always
 */
bool emberAfConfigureReportingResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);

/** @brief Read Reporting Configuration Response
 *
 * This function is called by the application framework when a Read Reporting
 * Configuration Response command is received from an external device.  The
 * application should return true if the message was processed or false if it
 * was not.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param buffer Buffer containing the list of attribute reporting configuration
 * records.  Ver.: always
 * @param bufLen The length in bytes of the list.  Ver.: always
 */
bool emberAfReadReportingConfigurationResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);

/** @brief Discover Attributes Response
 *
 * This function is called by the application framework when a Discover
 * Attributes Response or Discover Attributes Extended Response command is
 * received from an external device.  The Discover Attributes Response command
 * contains a bool indicating if discovery is complete and a list of zero or
 * more attribute identifier/type records. The final argument indicates whether
 * the response is in the extended format or not.  The application should return
 * true if the message was processed or false if it was not.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param discoveryComplete Indicates whether there are more attributes to be
 * discovered.  true if there are no more attributes to be discovered.  Ver.:
 * always
 * @param buffer Buffer containing the list of attribute identifier/type
 * records.  Ver.: always
 * @param bufLen The length in bytes of the list.  Ver.: always
 * @param extended Indicates whether the response is in the extended format or
 * not.  Ver.: always
 */
bool emberAfDiscoverAttributesResponseCallback(chip::ClusterId clusterId, bool discoveryComplete, uint8_t * buffer, uint16_t bufLen,
                                               bool extended);

/** @brief Discover Commands Generated Response
 *
 * This function is called by the framework when Discover Commands Generated
 * Response is received.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param manufacturerCode Manufacturer code  Ver.: always
 * @param discoveryComplete Indicates whether there are more commands to be
 * discovered.  Ver.: always
 * @param commandIds Buffer containing the list of command identifiers.  Ver.:
 * always
 * @param commandIdCount The length of bytes of the list, whish is the same as
 * the number of identifiers.  Ver.: always
 */
bool emberAfDiscoverCommandsGeneratedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
                                                      chip::CommandId * commandIds, uint16_t commandIdCount);

/** @brief Discover Commands Received Response
 *
 * This function is called by the framework when Discover Commands Received
 * Response is received.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param manufacturerCode Manufacturer code  Ver.: always
 * @param discoveryComplete Indicates whether there are more commands to be
 * discovered.  Ver.: always
 * @param commandIds Buffer containing the list of command identifiers.  Ver.:
 * always
 * @param commandIdCount The length of bytes of the list, whish is the same as
 * the number of identifiers.  Ver.: always
 */
bool emberAfDiscoverCommandsReceivedResponseCallback(chip::ClusterId clusterId, uint16_t manufacturerCode, bool discoveryComplete,
                                                     chip::CommandId * commandIds, uint16_t commandIdCount);

/** @brief Pre Command Received
 *
 * This callback is the second in the Application Framework's message processing
 * chain. At this point in the processing of incoming over-the-air messages, the
 * application has determined that the incoming message is a ZCL command. It
 * parses enough of the message to populate an EmberAfClusterCommand struct. The
 * Application Framework defines this struct value in a local scope to the
 * command processing but also makes it available through a global pointer
 * called emberAfCurrentCommand, in app/framework/util/util.c. When command
 * processing is complete, this pointer is cleared.
 *
 * @param cmd   Ver.: always
 */
bool emberAfPreCommandReceivedCallback(EmberAfClusterCommand * cmd);

/** @brief Pre Message Send
 *
 * This function is called by the framework when it is about to pass a message
 * to the stack primitives for sending.   This message may or may not be ZCL,
 * ZDO, or some other protocol.  This is called prior to
        any ZigBee
 * fragmentation that may be done.  If the function returns true it is assumed
 * the callback has consumed and processed the message.  The callback must also
 * set the EmberStatus status code to be passed back to the caller.  The
 * framework will do no further processing on the message.
        If the
 * function returns false then it is assumed that the callback has not processed
 * the mesasge and the framework will continue to process accordingly.
 *
 * @param messageStruct The structure containing the parameters of the APS
 * message to be sent.  Ver.: always
 * @param status A pointer to the status code value that will be returned to the
 * caller.  Ver.: always
 */
bool emberAfPreMessageSendCallback(EmberAfMessageStruct * messageStruct, EmberStatus * status);

/** @brief Message Sent
 *
 * This function is called by the application framework from the message sent
 * handler, when it is informed by the stack regarding the message sent status.
 * All of the values passed to the emberMessageSentHandler are passed on to this
 * callback. This provides an opportunity for the application to verify that its
 * message has been sent successfully and take the appropriate action. This
 * callback should return a bool value of true or false. A value of true
 * indicates that the message sent notification has been handled and should not
 * be handled by the application framework.
 *
 * @param type   Ver.: always
 * @param destination   Ver.: always
 * @param apsFrame   Ver.: always
 * @param msgLen   Ver.: always
 * @param message   Ver.: always
 * @param status   Ver.: always
 */
bool emberAfMessageSentCallback(const chip::MessageSendDestination & destination, EmberApsFrame * apsFrame, uint16_t msgLen,
                                uint8_t * message, EmberStatus status);

/** @brief Pre Attribute Change
 *
 * This function is called by the application framework before it changes an
 * attribute value.  The value passed into this callback is the value to which
 * the attribute is to be set by the framework.  The application should return
 * ::EMBER_ZCL_STATUS_SUCCESS to permit the change or any other ::EmberAfStatus
 * to reject it.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param attributeId   Ver.: always
 * @param mask   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param type   Ver.: always
 * @param size   Ver.: always
 * @param value   Ver.: always
 */
EmberAfStatus emberAfPreAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
                                                uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint16_t size,
                                                uint8_t * value);

/** @brief Post Attribute Change
 *
 * This function is called by the application framework after it changes an
 * attribute value. The value passed into this callback is the value to which
 * the attribute was set by the framework.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param attributeId   Ver.: always
 * @param mask   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param type   Ver.: always
 * @param size   Ver.: always
 * @param value   Ver.: always
 */
void emberAfPostAttributeChangeCallback(chip::EndpointId endpoint, chip::ClusterId clusterId, chip::AttributeId attributeId,
                                        uint8_t mask, uint16_t manufacturerCode, uint8_t type, uint16_t size, uint8_t * value);

/** @brief External Attribute Read
 *
 * Like emberAfExternalAttributeWriteCallback above, this function is called
 * when the framework needs to read an attribute that is not stored within the
 * Application Framework's data structures.
        All of the important
 * information about the attribute itself is passed as a pointer to an
 * EmberAfAttributeMetadata struct, which is stored within the application and
 * used to manage the attribute. A complete description of the
 * EmberAfAttributeMetadata struct is provided in
 * app/framework/include/af-types.h
        This function assumes that the
 * application is able to read the attribute, write it into the passed buffer,
 * and return immediately. Any attributes that require a state machine for
 * reading and writing are not really candidates for externalization at the
 * present time. The Application Framework does not currently include a state
 * machine for reading or writing attributes that must take place across a
 * series of application ticks. Attributes that cannot be read in a timely
 * manner should be stored within the Application Framework and updated
 * occasionally by the application code from within the
 * emberAfMainTickCallback.
        If the application was successfully able to
 * read the attribute and write it into the passed buffer, it should return a
 * value of EMBER_ZCL_STATUS_SUCCESS. Ensure that the size of the externally
 * managed attribute value is smaller than what the buffer can hold. In the case
 * of a buffer overflow throw an appropriate error such as
 * EMBER_ZCL_STATUS_INSUFFICIENT_SPACE. Any other return value indicates the
 * application was not able to read the attribute.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param attributeMetadata   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param buffer   Ver.: always
 * @param maxReadLength   Ver.: always
 * @param index   Ver.: always
 */
EmberAfStatus emberAfExternalAttributeReadCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
                                                   EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
                                                   uint8_t * buffer, uint16_t maxReadLength, int32_t index = -1);

/** @brief Write Attributes Response
 *
 * This function is called by the application framework when a Write Attributes
 * Response command is received from an external device.  The application should
 * return true if the message was processed or false if it was not.
 *
 * @param clusterId The cluster identifier of this response.  Ver.: always
 * @param buffer Buffer containing the list of write attribute status records.
 * Ver.: always
 * @param bufLen The length in bytes of the list.  Ver.: always
 */
bool emberAfWriteAttributesResponseCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);

/** @brief External Attribute Write
 *
 * This function is called whenever the Application Framework needs to write an
 * attribute which is not stored within the data structures of the Application
 * Framework itself. One of the new features in Version 2 is the ability to
 * store attributes outside the Framework. This is particularly useful for
 * attributes that do not need to be stored because they can be read off the
 * hardware when they are needed, or are stored in some central location used by
 * many modules within the system. In this case, you can indicate that the
 * attribute is stored externally. When the framework needs to write an external
 * attribute, it makes a call to this callback.
        This callback is very
 * useful for host micros which need to store attributes in persistent memory.
 * Because each host micro (used with an Ember NCP) has its own type of
 * persistent memory storage, the Application Framework does not include the
 * ability to mark attributes as stored in flash the way that it does for Ember
 * SoCs like the EM35x. On a host micro, any attributes that need to be stored
 * in persistent memory should be marked as external and accessed through the
 * external read and write callbacks. Any host code associated with the
 * persistent storage should be implemented within this callback.
        All of
 * the important information about the attribute itself is passed as a pointer
 * to an EmberAfAttributeMetadata struct, which is stored within the application
 * and used to manage the attribute. A complete description of the
 * EmberAfAttributeMetadata struct is provided in
 * app/framework/include/af-types.h.
        This function assumes that the
 * application is able to write the attribute and return immediately. Any
 * attributes that require a state machine for reading and writing are not
 * candidates for externalization at the present time. The Application Framework
 * does not currently include a state machine for reading or writing attributes
 * that must take place across a series of application ticks. Attributes that
 * cannot be written immediately should be stored within the Application
 * Framework and updated occasionally by the application code from within the
 * emberAfMainTickCallback.
        If the application was successfully able to
 * write the attribute, it returns a value of EMBER_ZCL_STATUS_SUCCESS. Any
 * other return value indicates the application was not able to write the
 * attribute.
 *
 * @param endpoint   Ver.: always
 * @param clusterId   Ver.: always
 * @param attributeMetadata   Ver.: always
 * @param manufacturerCode   Ver.: always
 * @param buffer   Ver.: always
 * @param index   Ver.: always
 */
EmberAfStatus emberAfExternalAttributeWriteCallback(chip::EndpointId endpoint, chip::ClusterId clusterId,
                                                    EmberAfAttributeMetadata * attributeMetadata, uint16_t manufacturerCode,
                                                    uint8_t * buffer, int32_t index = -1);

/** @brief Report Attributes
 *
 * This function is called by the application framework when a Report Attributes
 * command is received from an external device.  The application should return
 * true if the message was processed or false if it was not.
 *
 * @param clusterId The cluster identifier of this command.  Ver.: always
 * @param buffer Buffer containing the list of attribute report records.  Ver.:
 * always
 * @param bufLen The length in bytes of the list.  Ver.: always
 */
bool emberAfReportAttributesCallback(chip::ClusterId clusterId, uint8_t * buffer, uint16_t bufLen);

/** @brief Get Current Time
 *
 * This callback is called when device attempts to get current time from the
 * hardware. If this device has means to retrieve exact time, then this method
 * should implement it. If the callback can't provide the exact time it should
 * return 0 to indicate failure. Default action is to return 0, which indicates
 * that device does not have access to real time.
 *
 */
uint32_t emberAfGetCurrentTimeCallback();

/** @brief Get Endpoint Info
 *
 * This function is a callback to an application implemented endpoint that
 * operates outside the normal application framework.  When the framework wishes
 * to perform operations with that endpoint it uses this callback to retrieve
 * the endpoint's information.  If the endpoint exists and the application can
 * provide data then true shall be returned.  Otherwise the callback must return
 * false.
 *
 * @param endpoint The endpoint to retrieve data for.  Ver.: always
 * @param returnNetworkIndex The index corresponding to the ZigBee network the
 * endpoint belongs to.  If not using a multi-network device, 0 must be
 * returned.  Otherwise on a multi-network device the stack will switch to this
 * network before sending the message.  Ver.: always
 * @param returnEndpointInfo A pointer to a data struct that will be written
 * with information about the endpoint.  Ver.: always
 */
bool emberAfGetEndpointInfoCallback(chip::EndpointId endpoint, uint8_t * returnNetworkIndex,
                                    EmberAfEndpointInfoStruct * returnEndpointInfo);

/** @brief Registration Abort
 *
 * This callback is called when the device should abort the registration
 * process.
 *
 */
void emberAfRegistrationAbortCallback();

/** @brief Interpan Send Message
 *
 * This function will send a raw MAC message with interpan frame format using
 * the passed parameters.
 *
 * @param header Interpan header info  Ver.: always
 * @param messageLength The length of the message received or to send  Ver.:
 * always
 * @param message The message data received or to send.  Ver.: always
 */
EmberStatus emberAfInterpanSendMessageCallback(EmberAfInterpanHeader * header, uint16_t messageLength, uint8_t * message);

/** @brief Start Move
 *
 * This function is called to initiate the process for a device to move (rejoin)
 * to a new parent.
 *
 */
bool emberAfStartMoveCallback();
